DPYSER page# 0001 next
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
DPYSER page# 0002 next prev
132: SUBTTL III DISPLAY PACKAGE - D. POOLE - NOV 1968
133:
134:
135:
136:
137:
138:
139:
140:
141: BEGIN DPYSER
142:
143: ↓CHR←TEM
144:
145:
146:
147: DISJMP←←20
148: DISJMS←←4
149: DISJSR←←24
150: DISRST←←14
151: DISSEL←←10
152: DISNOP←←14
153:
154: DEFINE LVW(X,Y,TYPE,MODE,BRT,SIZ)
155: { MVW1 (MODE,TYPE,BRT,SIZ)
156: BYTE (11)<X>,<Y>(3)B,S(2)MD,TT(3)3 }
157: DEFINE MVW1 (M,T,BRT,SIZ)
158: {IFIDN {M}{A}{MD←1
159: IFIDN {T}{I}{TT←2
160: IFIDN {BRT}{}{B←0
161: IFIDN {SIZ}{}{S←0
162: }
163: DEFINE ERMS (X) {JSA ITEM,ERRP
164: POINT 7,[ASCIZ ⊗X
165: ⊗]
166: }
167: DEFINE CW (C1,B1,C2,B2,C3,B3) {<BYTE (8)<B1>,<B2>,<B3>(3)<C1>,<C2>,<C3>>!4}
168: GLOBAL DDTAB,JB2SWP
DPYSER page# 0003 next prev
170:
171:
172: SIZSBU: POINT 1,GWORD(DDB),0
173: POSSBU: POINT 1,GWORD(DDB),1
174: LHCSBU: POINT 1,GWORD(DDB),2
175: GHCSBU: POINT 1,GWORD(DDB),3
176: HLINES: POINT 9,GWORD(DDB),17
177: HGLTCH: POINT 9,GWORD(DDB),26
178:
179:
180:
181:
182: NGSIII←←14
183: NGSDD←←4
184: NLSIII←←2
185: NLSDD←←11
186: YPIII←←600
187: YPDD←←660
188: ↑NDDSPQ←←60
189:
DPYSER page# 0004 next prev
191:
192:
193:
194:
195: ↑DWPINI:
196: MOVEI AC1,2
197: MOVEM AC1,DDCURS+2
198: MOVE AC1,[XWD DDCURS+2,DDCURS+3]
199: BLT AC1,DDCURS+21
200: MOVEI TAC,DPYNUM
201: MOVEM TAC,DRUNCT
202: HRLOI TAC,377777
203: MOVEM TAC,DDCNT
204: SETZM FSWTHD
205: SETZM FSWT2H
206: SETZM DDSTART
207: SETZM DDRUN
208: SETZM STRTBL
209: MOVE TAC,[XWD STRTBL,STRTBL+1]
210: BLT TAC,LETAB+DPYNUM+DDNUM-1
211: SETOM DXFLAG
212: MOVE TAC,[POINT 36,CLKQUE-1,35]
213: MOVEM TAC,CLKQ
214: MOVE TAC,[IOWD LCPDL,CLKPD]
215: MOVEM TAC,DPYPDL
216: MOVSI TAC,770000
217: HLLM TAC,DPYAVL+1
218: HLLM TAC,WHOSEL
219: MOVSI TAC,77
220: HLLM TAC,DPYHLD
221: IFN FTOIKB, < CONO KBD,SCNCHN >
222: CONO DDD,10
223: PUSHJ P,DDINI
224: JRST WHOINI
225:
226: DWPERR: PUSHJ P,DISMES
227: ASCIZ /CATASTROPHIC ERROR FROM DPYSER
228: /
229: DPYATL: SETOM DISFLAG
230: PUSHJ P,DISFLUSH
231: JRST AUTOLOAD
DPYSER page# 0005 next prev
233:
234:
235:
236:
237:
238: ↑DPYMAKE:
239: SKIPE LETAB-DPYL0(TAC1)
240: JRST CPOPJ1
241: PUSH P,TAC
242: PUSH P,DAT
243: PUSH P,DDB
244: PUSH P,AC1
245: PUSH P,AC2
246: PUSH P,AC3
247: MOVNI TAC,1
248: HLL TAC1,LINTAB(TAC1)
249: TLNN TAC1,DDDLIN
250: JRST DPYM1
251: MOVSI TAC,400100-DDL0(TAC1)
252: PUSHJ P,DDAGET
253: JRST DPYXTL
254: ANDI TAC,-1
255: DPYM1: MOVEI AC3,DHFS
256: PUSHJ P,SFSGET
257: JRST DPYM8
258: HRRZ DDB,AC1
259: SETZM (AC1)
260: HRLZ AC2,AC1
261: HRRI AC2,1(AC1)
262: MOVE AC3,AC1
263: BLT AC2,DPYLEN-1(AC3)
264: MOVEI AC2,DISRST!60
265: HRLI AC2,PRGSAV(AC1)
266: MOVEM AC2,(AC1)
267: HRLI AC2,LEB+1(AC1)
268: MOVEM AC2,LEPPV+4(AC1)
269: SETZM LEB(AC1)
270: HRLI AC2,LEB(AC1)
271: HRRI AC2,DISJMS
272: MOVEM AC2,LEJMS(AC1)
273: HRRI AC2,DISJMP
274: MOVEM AC2,LEBUF(AC1)
275: HRLI AC2,WHOCALL(AC1)
276: MOVEM AC2,RTJMP(AC1)
277: HRLI AC2,LEBUF(AC1)
278: HRRI AC2,LEBUF+1(AC1)
279: BLT AC2,LEHPOS-1(AC1)
280: MOVSI AC3,(TAC)
281: HRRI AC3,-DPYL0(TAC1)
282: MOVEM AC3,PRGNUM(DDB)
283: PUSHJ P,PPINIT
284: JRST DPYM7
285: PUSHJ P,PPSET
286: JUMPGE TAC,DPYM2
287: MOVNI AC3,-DPYL0(TAC1)
288: MOVE AC2,[BYTE (12)0,7777,DISSEL]
289: MOVEM AC2,PSELC(DDB)
290: MOVSI AC2,400040
291: LSH AC2,(AC3)
292: XOR AC2,[77770000]
293: ORI AC2,DISSEL
294: MOVEM AC2,PSELA(DDB)
295: MOVEM AC2,PSELB(DDB)
296: AND AC2,[77B5]
297: ANDCAM AC2,DPYAVL+1
298: ANDCAM AC2,WHOSEL
299: LSH AC2,-=12
300: ORM AC2,DPYAVL+1
301: ORM AC2,WHOSEL
302: MOVE AC2,[LVW (-5,-14)]
303: MOVEM AC2,LEPPV+1(DDB)
304: MOVE AC2,[LVW (12,0)]
305: MOVEM AC2,LEPPV+2(DDB)
306: MOVE AC2,[LVW (-5,14)]
307: MOVEM AC2,LEPPV+3(DDB)
308: MOVE AC2,[LVW (0,0,I)]
309: MOVEM AC2,LELMARG(DDB)
DPYSER page# 0006 next prev
311:
312:
313: DPYM3: MOVEI AC2,LEBUF+BUFL-4(DDB)
314: MOVEM AC2,MAXPT(DDB)
315: MOVNI AC1,24000/BLKSIZ
316: MOVEM AC1,BLKTOT(DDB)
317: HRRZI TAC,-DPYL0(TAC1)
318: MOVEI AC1,DISNOP
319: MOVEM AC1,WHOCALL(DDB)
320: MOVEM AC1,LEPOS(DDB)
321: MOVEM AC1,PGCALL(DDB)
322: MOVEM AC1,LEPPV(DDB)
323: MOVEI AC1,400000
324: MOVEM AC1,PRGACT(DDB)
325: MOVEM AC1,USRACT(DDB)
326: MOVEI AC1,3
327: ADDM AC1,DPYFS+SPFSN
328: ADDM AC1,SPFSNT
DPYSER page# 0007 next prev
330:
331:
332:
333: HRL AC2,DDB
334: HRRI AC2,DISJMP
335: HRLI AC3,PRGSTP(DDB)
336: HRRI AC3,DISJMS
337: HRLI AC1,PSELB(DDB)
338: HRRI AC1,DISJMP
339: MOVEI DAT,LETAB(TAC)
340: MOVEM DAT,LETBPT(DDB)
341: MOVEI DAT,PSELA(DDB)
342: CONO PI,PIOFF
343: SKIPE LETAB(TAC)
344: JRST DPYM5
345: HRRZM DDB,LETAB(TAC)
346: CONO PI,PION
347: CAIL TAC,DPYNUM
348: JRST DPYXIT
349: MOVEM DAT,SELTBL(TAC)
350: MOVEM AC3,STPTBL(TAC)
351: MOVEM AC1,RSTTBL(TAC)
352: MOVEM AC2,STRTBL(TAC)
353: DPYXIT: AOS -6(P)
354: DPYXTL: POP P,AC3
355: POP P,AC2
356: POP P,AC1
357: POP P,DDB
358: POP P,DAT
359: POP P,TAC
360: POPJ P,
361:
362: DPYM5: CONO PI,PION
363: CAIL TAC,DPYNUM
364: JRST DPYM6
365: PUSHJ P,DPYKFS
366: JRST DPYXIT
367:
368: DPYM6: HRRZM DDB,DPRLSF(DDB)
369: MOVSI TAC,100-DDL0(TAC1)
370: HLR TAC,PRGNUM(DDB)
371: PUSHJ P,DDREL
372: JRST DPYXIT
373:
374: DPYM7: PUSHJ P,DPYKF2
375: DPYM8: JUMPL TAC,DPYXTL
376: HRLI TAC,100-DDL0(TAC1)
377: PUSHJ P,DDREL
378: JRST DPYXTL
379:
380: ↑PPSET: HRRZM DDB,HEDPTR(AC1)
381: HRLI AC1,DISJMP
382: MOVSM AC1,PPCALL(DDB)
383: HRRZM AC1,CURPP(DDB)
384: MOVEI AC3,PPCALL+1(DDB)
385: HRLM AC3,PPRJMP(AC1)
386: POPJ P,
DPYSER page# 0008 next prev
388:
389:
390:
391: DPYM2: MOVE AC2,AVLBIT
392: HRLI DDB,DDWIPE
393: CONO PI,SCNOFF
394: ANDCAB AC2,VDMAP-DDL0(TAC1)
395: MOVEM AC2,VDTMP(DDB)
396: CONO PI,PIOFF
397: IDPB DDB,CLKQ
398: CONO PI,PION!SCNON
399: JRST DPYM3
400:
401:
402: DDWIPE: SKIPE DDB,DPRLSF(DAT)
403: JRST DPYKFS
404: PUSHJ P,GETQ
405: HRRZ AC2,CURPP(DAT)
406: ADDI AC2,PPENQ
407: MOVEM AC2,QCOUNT(AC1)
408: AOS (AC2)
409: HRLI DAT,DDMAP
410: MOVEM DAT,QWAKE(AC1)
411: JRST LEERS3
412:
413:
414: DDMAP: HLRZ AC1,PRGNUM(DAT)
415: HRRZ TAC,PRGNUM(DAT)
416: SUBI TAC,DPYNUM
417: PUSHJ P,VDSTRB
418: IORM AC3,VDTMP(AC2)
419: PUSHJ P,VDOUT
420: MOVEI DAT,DDL0(TAC)
421: JRST DPYTYP
DPYSER page# 0009 next prev
423:
424:
425:
426: ↑DPYKIL:CAIL TAC,DPYNUM+DDNUM
427: JRST DPYKER
428: SKIPE AC1,LETAB(TAC)
429: SETZM LECLIN(AC1)
430: SKIPN TTYTAB+DPYL0(TAC)
431: SKIPG AC1,LETAB(TAC)
432: POPJ P,
433: SKIPE LEACT(AC1)
434: JRST DPYKI9
435: SKIPN LEENQ2(AC1)
436: SKIPE LEENQ(AC1)
437: JRST DPYKI7
438: HLRZ AC2,PPCALL(AC1)
439: DPYKI8: SKIPE PPENQ(AC2)
440: JRST DPYKI7
441: HRRZ AC2,LINK(AC2)
442: JUMPN AC2,DPYKI8
443: HRRZ DDB,AC1
444: CAIL TAC,DPYNUM
445: HRLI DDB,400000
446: PUSHJ P,PGCLR
447: CONO PI,PIOFF
448: SKIPN TTYTAB+DPYL0(TAC)
449: SKIPG LETAB(TAC)
450: JRST DPYKI3
451: SETZM LETAB(TAC)
452: JUMPL DDB,DPYKL1
453: SETZM RSTTBL(TAC)
454: SETZM STPTBL(TAC)
455: SETZM STRTBL(TAC)
456: DPYKL1: CONO PI,PION
457: HRRZ AC2,DDB
458: SKIPA J,JOBNM1
459: DPYKML: SETZM DPYMAP+1(J)
460: CAIE AC2,@DPYMAP(J)
461: SOJG J,.-1
462: SOJGE J,DPYKML
DPYSER page# 0010 next prev
464: PUSHJ P,DPYKFS
465: JUMPGE DDB,DPYK11
466: DPYK10: MOVSI TAC,100-DPYNUM(TAC)
467: HLR TAC,PRGNUM(DDB)
468: PUSHJ P,DDREL
469: MOVEI AC1,(TAC)
470: LDB TAC,[220600,,TAC]
471: PUSHJ P,VDBIT
472: ANDCAB AC3,VDMAP(TAC)
473: JUMPN AC3,VDOUT
474: MOVE AC3,AVLBIT
475: IORM AC3,VDMAP(TAC)
476: JRST VDOUT
477:
478: DPYK11: MOVNS TAC
479: MOVSI AC1,400000
480: LSH AC1,-=12(TAC)
481: ANDCAM AC1,DPYAVL+1
482: ANDCAM AC1,WHOSEL
483: LSH AC1,=12
484: ORM AC1,DPYAVL+1
485: ORM AC1,WHOSEL
486: POPJ P,
487:
488: DPYKI3: CONO PI,PION
489: POPJ P,
490:
491: DPYKFS: MOVNI AC2,3
492: MOVEI AC3,DPYFS
493: PUSHJ P,SFSREL
494: HLRZ DAT,PPCALL(DDB)
495: JUMPE DAT,DPYKF2
496: DPYKF1: MOVE AC1,FBLKPT(DAT)
497: PUSHJ P,FREEL
498: HRRZ AC1,PTB(DAT)
499: JUMPE AC1,.+2
500: PUSHJ P,FSGIVE
501: MOVE AC1,DAT
502: HRRZ DAT,LINK(DAT)
503: PUSHJ P,UGIVFS
504: JUMPN DAT,DPYKF1
505: DPYKF2: MOVEI AC1,(DDB)
506: JRST UGIVFS
DPYSER page# 0011 next prev
508:
509:
510:
511: DPYKI9: SETZM LEACT(AC1)
512: SKIPA AC3,DPYKRQ
513: DPYKI7: MOVE AC3,[XWD DPYKILL,1]
514: SETO AC2,
515: EXCH AC2,LECLIN(AC1)
516: JUMPL AC2,CPOPJ
517: LSH TAC,=12
518: ADD TAC,AC3
519: CONO PI,PIOFF
520: IDPB TAC,CLOCK(PID)
521: CONO PI,PION
522: POPJ P,
523:
524:
525:
526:
527: DPYKER: PUSH P,TAC
528: PUSHJ P,DISERR
529: [ASCIZ /ILLEGAL LINE NUMBER AT DPYKILL - /]
530: DISARG OCT,<-1(P)>
531: [ASCIZ /
532: /]
533: -1
534: POP P,TAC
535: POPJ P,
536:
537: ↑DPYKRQ: DPYKIL,,=15*=60
DPYSER page# 0012 next prev
539:
540:
541:
542:
543: ↑DPYINT: BEGIN DPYINT
544:
545: DP←←430
546: DPYCHL←<FOR @$ QQ←DPYCHN,DPYCHN {CH$QQ}>
547: DPCONB←←40
548: DPNULL←←0
549: DPNXM←←2000
550: DPINT←←4000
551: DPSTOP←←200
552: DPCHK←←400
553:
554: CONSO DP,400000
555: JEN @DPYCHL
556: EXCH TAC,DRUNCT
557: SKIPN STPTBL(TAC)
558: JRST NOSTOP
559: DATAO DP,STPTBL(TAC)
560: MOVEM TAC1,@SELTBL(TAC)
561: CONI DP,TAC1
562: HRRI TAC1,DISSEL
563: EXCH TAC1,@SELTBL(TAC)
564: NOSTOP: CONSZ DP,DPNXM!DPCHK
565: JRST DPERR
566: L6: SOJL TAC,L1
567: L5: CONSO DP,400000
568: JRST L5
569: SKIPE RSTTBL(TAC)
570: JRST L2
571: SKIPN STRTBL(TAC)
572: JRST L7
573: DATAO DP,STRTBL(TAC)
574: L3: EXCH TAC,DRUNCT
575: ROT 44
576: CONO DP,DPCONB+DPYCHN+740000+1000
577: JEN @DPYCHL
DPYSER page# 0013 next prev
579:
580:
581: DPERR: EXCH P,APRPDL+P1PID
582: PUSHACS
583: MOVEI PID,P1PID
584: MOVEM TAC,SAVTAC
585: CONI DP,DPCNI
586: PUSHJ P,DISDATE
587: PUSHJ P,DISERR
588: [ASCIZ/DP ERROR.
589: CONI BITS = /]
590: DISARG LOC,DPCNI
591: [ASCIZ/
592: DPY# = /]
593: DISARG LOC,SAVTAC
594: -1
595: MOVE AC3,SAVTAC
596: SKIPN AC3,STPTBL(AC3)
597: JRST NOADDR
598: HLRZS AC3
599: HLRZ AC3,(AC3)
600: PUSHJ P,DISERR
601: [ASCIZ/ MA = /]
602: DISARG LOC,AC3
603: [ASCIZ/
604: /]
605: -1
606: CAILE AC3,1
607: CAMLE AC3,RMEMSIZ
608: JRST ADDRCK
609: PUSHJ P,DISERR
610: [ASCIZ\MA-2/ \]
611: DISARG OCT,-2(AC3)
612: [ASCIZ\
613: MA-1/ \]
614: DISARG OCT,-1(AC3)
615: [ASCIZ\
616: MA/ \]
617: DISARG OCT,(AC3)
618: -1
619: JRST NOADDR
620: ADDRCK: PUSHJ P,DISMES
621: ASCIZ/NON-EX ADDRESS/
622: NOADDR: PUSHJ P,DISMES
623: ASCIZ/
624:
625:
626: /
627: PUSHJ P,SYSFIX
628: JFCL
629: JFCL
630: SKIPN DEBMOD
631: JRST NODPLK
632: SETOM DISFLAG
633: PUSHJ P,DISFLUSH
634: PUSHJ P,DDTCALL
635: NODPLK:
636: MOVEI TAC,DPYNUM-1
637: L8: SKIPN DDB,LETAB(TAC)
638: JRST L9
639: HRLI DDB,PSELB(DDB)
640: HRRI DDB,DISJMP
641: MOVEM DDB,RSTTBL(TAC)
642: L9: SOJGE TAC,L8
643: POPACS
644: EXCH P,APRPDL+P1PID
645: JRST L6
DPYSER page# 0014 next prev
647:
648:
649: L2: DATAO DP,RSTTBL(TAC)
650: SETZM RSTTBL(TAC)
651: JRST L3
652:
653: L1: SKIPE DPYHOL
654: JRST L1A
655: SETOM DPYHOL
656: DATAO DP,[XWD DPYHLD,DISJMP]
657: JRST L3
658:
659: L1A: SETZM DPYHOL
660: MOVEI TAC,DPYNUM-1
661: SETZM DPYARN
662: AOSE DSFLAG
663: AOJA TAC,L4
664: JRST L5
665:
666: L4: CONO DP,DPNULL
667: EXCH TAC,DRUNCT
668: JEN @DPYCHL
669:
670: L7: SKIPE DPYARN
671: JRST L6
672: SETOM DPYARN
673: DATAO DP,[XWD DPYAVL,DISJMP]
674: JRST L3
675:
676: BEND
DPYSER page# 0015 next prev
678:
679:
680:
681:
682:
683:
684:
685:
686:
687:
688:
689:
690:
691:
692:
693:
694: OUTNUM←←1
695: LINELN←←=88
696: DDLINELN←←=84
697: CBLKBT←←1
698: TBLKBT←←4
699: FBLKBT←←2
700:
701: ↑PPINIT:
702: PUSHJ P,PPFSGET
703: POPJ P,
704: HRR AC3,AC2
705: HRRZ DAT,AC2
706: HRLI AC3,PPMODL
707: BLT AC3,BLKSIZ-1(AC2)
708: PUSHJ P,PPFSGET
709: JRST PPI1
710: MOVEM AC2,CBLKPT(DAT)
711: MOVEM AC2,FBLKPT(DAT)
712: MOVEM AC2,TBLKPT(DAT)
713: HRRM AC2,PPTR1(DAT)
714: SOS PPTR1(DAT)
715: HRLM AC2,TPJMP(DAT)
716: HRLI AC3,TPJMP+1(DAT)
717: HRRI AC3,DISJMP
718: MOVEM AC3,(AC2)
719: HRLZM DAT,LINK(AC2)
720: SETZM LINK(DAT)
DPYSER page# 0016 next prev
722: SETZM PPDD(DAT)
723: MOVEI AC3,LPFS
724: PUSHJ P,SFSGET
725: JRST PPI3
726: MOVEM AC1,PTB(DAT)
727: ADDI AC1,=20
728: HRRM AC1,PTRB(DAT)
729: MOVE AC2,PPTR1(DAT)
730: ADD AC1,VPOS(DAT)
731: MOVEM AC2,(AC1)
732: MOVEM AC2,1(AC1)
733: JUMPL TAC,PPFXT
734: SETOM PPDD(DAT)
735: MOVEI AC1,11
736: MOVEM AC1,DEL(DAT)
737: MOVEM AC1,DELCNT(DAT)
738: MOVEI AC1,4
739: MOVEM AC1,PGSIZ(DAT)
740: MOVEM AC1,VPOS(DAT)
741: MOVEM AC1,LLW(DAT)
742: MOVEM AC1,GLW(DAT)
743: SETZM DDSAV(DAT)
744: MOVE AC1,[CW 1,46,2,0,3,2]
745: DPB TAC,[POINT 8,AC1,15]
746: MOVEM AC1,DDCW(DAT)
747: MOVEI AC2,DDLINELN
748: MOVEM AC2,LNLNGT(DAT)
749: MOVNM AC2,DPHPOS(DAT)
750: MOVE AC1,[LVW -777,YPDD,I,A,2,2]
751: MOVEM AC1,PPOSV(DAT)
752: SETZM TPJMP+1(DAT)
753: SETZM TPJMP+2(DAT)
754: MOVE AC1,[CW 3,2,4,0,5,0]
755: MOVEM AC1,TPJMP+4(DAT)
756: PPFXT: MOVE AC1,DAT
757: JRST CPOPJ1
758:
759:
760:
761: PPI3: HRRZ AC1,CBLKPT(DAT)
762: PUSHJ P,FSGIVE
763: PPI1: HRRZ AC1,DAT
764: JRST FSGIVE
DPYSER page# 0017 next prev
766:
767:
768: PPFSGE: MOVE AC2,AC1
769: MOVEI AC3,PPFS
770: AOS (P)
771: PUSHJ P,SFSGET
772: SOS (P)
773: EXCH AC2,AC1
774: POPJ P,
775:
776:
777:
778: CGETFS: AOSA BLKTOT(DDB)
779: UGFS2: PUSHJ P,CLKWAT
780: ↑UGETFS:
781: MOVEI AC3,DPYFS
782: PUSHJ P,SFSGET
783: SKIPE AC1,SPWUUF(PID)
784: POPJ P,
785: SKIPN AC1,INTACT(PID)
786: JRST UGFS2
787: POPJ P,
788:
789:
790:
791: CGIVFS: SOS BLKTOT(DDB)
792: ↑UGIVFS:
793: CONO PI,PIOFF
794: MOVE AC2,FSWT2H
795: HRRZM AC1,FSWT2H
796: HRRM AC2,LINK(AC1)
797: CONO PI,PION
798: AOS FSW2C
799: POPJ P,
800:
801:
802: GETQ: PUSH P,AC3
803: MOVE AC3,[SETZ DDFS]
804: PUSHJ P,SFSGET
805: POP P,AC3
806: POPJ P,
807:
808: UGETF2: PUSHJ P,CLKWAT
809: UGETF1: PUSHJ P,FSGET
810: SKIPE AC1,SPWUUF(PID)
811: POPJ P,
812: SKIPN AC1,INTACT(PID)
813: JRST UGETF2
814: POPJ P,
DPYSER page# 0018 next prev
816:
817:
818: DEFINE X (A,B) {A←←.-PPMODL
819: B
820: }
821: PPMODL:
822:
823: X PPOSV,{LVW -777,YPIII,I,A,2,2}
824: X TPJMP, DISJMP
825: LVW (7,-17,I)
826: LVW -5,-10
827: X ↑DDCW,<LVW 12,0>
828: LVW -5,10
829: LVW (-7,7,I)
830: X PPRJMP, DISJMP
831:
832: X HEDPTR, 0
833: X OUTCNT,OUTNUM
834: X PPNO,0
835: X ↑DPHPOS,-LINELN
836: X CNT1,0
837: X PPTR1,{POINT 7,0,35}
838: X SPTR1,0
839: X WCNT,-INITWC
840: X CBLKPT,0
841: X TBLKPT,0
842: X FBLKPT,0
843: X DEL,2
844: X DELCNT,2
845: X GLCNT,1
846: X PGSIZ,14
847: X PTBEG,0
848: X DDSPT,0
849: X DDSAV,0
850: 0
851: X (↑VPOS,3)
852: X LLW,3
853: X PTRB,<XWD AC3,0>
854: X PTB,0
855: X VP,0
856: X SC,0
857: X DPYCHR,0
858: X LSTCHR,12
859: X GLW,3
860: X PPDD,0
861: X GLTCH,0
862: X PPINV,0
863: X PPENQ,0
864: X PPNQT,0
865: X PPVIRG,-1
866: X ↑LNLNGT,LINELN
867:
868:
869:
870:
871:
872:
873: ↓BLKSIZ←←<<LNLNGT+5+1>!<TRIVIAL-1>>-1
874: ↑BLKSIZ←←BLKSIZ
875: ↓LINK ←← BLKSIZ-1
876: ↓BLKBTS ←← LINK-1
877: ↓GCINFO ←← BLKBTS-1
878: FSBSIZ←←BLKSIZ-2
879: ↑FSLINK←←LINK
880: ↓CNT←←GCINFO-2
881: INITWC←←GCINFO-2
DPYSER page# 0019 next prev
883:
884:
885:
886:
887:
888:
889:
890:
891: ↑↑DPYTYO:
892: MOVE DAT,CURPP(DDB)
893: HLL DAT,DDB
894: JRST TYO
895:
896: TYOTAC: ILDB CHR,TAC
897: TYO: MOVE AC1,LSTCHR(DAT)
898: CAIN AC1,177
899: JUMPL DAT,DELNOW
900: JUMPE CHR,CPOPJ
901: JUMPGE AC1,TYO0
902: CAIN CHR,15
903: POPJ P,
904: MOVEI AC1,12
905: MOVEM AC1,LSTCHR(DAT)
906: CAIN CHR,12
907: POPJ P,
908:
909:
910: TYO0: SETOM DPYCHR(DAT)
911: CAIN CHR,15
912: JRST PR1ECR
913: CAIE AC1,12
914: JRST TYO1
915: JUMPG DAT,TYO1
916:
917:
918: MOVE AC1,DPHPOS(DAT)
919: ADD AC1,LNLNGT(DAT)
920: JUMPE AC1,TYO4
921: PUSH P,CHR
922: PUSH P,AC1
923: MOVEI CHR,15
924: DPB CHR,SPTR1(DAT)
925: MOVEI CHR,12
926: SOS VPOS(DAT)
927: PUSHJ P,PUTCH1
928: PUSHJ P,EOLSET
929: MOVEI CHR,40
930:
931: TYO5: PUSHJ P,PUTCH1
932: SOSLE (P)
933: JRST TYO5
934: SUB P,[1,,1]
935: POP P,CHR
936:
937: TYO1: CAIN CHR,12
938: JRST PR1EOL
939: JUMPGE DAT,TYO2
940: MOVE AC1,DPHPOS(DAT)
941: ADD AC1,LNLNGT(DAT)
942: JUMPN AC1,TYO2
943: MOVE AC1,LSTCHR(DAT)
944: CAIN AC1,12
945: JRST TYO2
946: PUSH P,CHR
947: MOVEI CHR,12
948: PUSHJ P,PUTCH1
949: PUSHJ P,EOLSET
950: SOSG DELCNT(DAT)
951: PUSHJ P,PREOGL
952: POP P,CHR
953: TYO2: CAIN CHR,11
954: PUSHJ P,PR1TAB
955: PUSHJ P,PUTCH1
956: TYO7: MOVEM CHR,LSTCHR(DAT)
957: CAIN CHR,177
958: JUMPL DAT,.+3
959: AOSL DPHPOS(DAT)
960: JRST PRCR
961: MOVE AC1,[CW 0,0,3,2,3,2]
962: SKIPGE DAT
963: MOVEM AC1,TPJMP+1(DAT)
964: POPJ P,
DPYSER page# 0020 next prev
966:
967: TYO4: CAIE CHR,12
968: JRST TYO2
969: PUSHJ P,PR1EC2
970: MOVEI CHR,12
971: JRST PR1EOL
972:
973:
974: PUTCH1: SOSG CNT1(DAT)
975: PUSHJ P,EXTBUF
976: IDPB CHR,PPTR1(DAT)
977: POPJ P,
978:
979:
980: DELNOW: PUSHJ P,PUTCH1
981: IORI CHR,200
982: JRST TYO7
983:
984:
985:
986: PR1TAB: PUSHJ P,PUTCH1
987: MOVEI CHR," "
988: SETCM AC1,DPHPOS(DAT)
989: SUB AC1,LNLNGT(DAT)
990: ANDI AC1,7
991: ADDM AC1,DPHPOS(DAT)
992: PR1TB1: PUSH P,AC1
993: PUSHJ P,PUTCH1
994: POP P,AC1
995: SOJGE AC1,PR1TB1
996: MOVEI CHR,11
997: POPJ P,
998:
999:
1000: PRCR: MOVEI CHR,15
1001: PUSHJ P,PUTCH1
1002: MOVEI CHR,12
1003: PUSHJ P,SETLL
1004: PUSHJ P,PR1EOL
1005: SETOM LSTCHR(DAT)
1006:
1007: POPJ P,
DPYSER page# 0021 next prev
1009: PR1ECR: JUMPGE DAT,PR1EC1
1010: SETZM TPJMP+1(DAT)
1011: MOVEI AC1,12
1012: CAME AC1,LSTCHR(DAT)
1013: JRST PR1EC1
1014: MOVN AC3,DPHPOS(DAT)
1015: CAMN AC3,LNLNGT(DAT)
1016: JRST PR1EC2
1017: SOS VPOS(DAT)
1018: DPB CHR,SPTR1(DAT)
1019: PUSHJ P,SETLL
1020: MOVEI CHR,12
1021: PUSHJ P,PUTCH1
1022: MOVEM CHR,LSTCHR(DAT)
1023: JRST EOLSET
1024:
1025: PR1EC1: MOVN AC3,DPHPOS(DAT)
1026: CAMN AC3,LNLNGT(DAT)
1027: POPJ P,
1028: PUSHJ P,SETLL
1029: PR1EC3: PUSHJ P,PUTCH1
1030: MOVEM CHR,LSTCHR(DAT)
1031: POPJ P,
1032:
1033:
1034: PR1EC2: MOVEI CHR,40
1035: PUSHJ P,PUTCH1
1036: MOVEI CHR,15
1037: JRST PR1EC3
1038:
1039:
1040: PR1EOL: SKIPGE DAT
1041: SETZM TPJMP+1(DAT)
1042: PR1EO1: MOVEM CHR,LSTCHR(DAT)
1043: PUSHJ P,PUTCH1
1044: PUSHJ P,EOLSET
1045: SOSLE DELCNT(DAT)
1046: POPJ P,
1047: PREOGL: MOVE AC3,DEL(DAT)
1048: MOVEM AC3,DELCNT(DAT)
1049: AOS AC1,GLCNT(DAT)
1050: CAMG AC1,PGSIZ(DAT)
1051: POPJ P,
1052: JRST GLITCH
1053:
1054:
1055: SETLL: MOVN AC1,LNLNGT(DAT)
1056: MOVEM AC1,DPHPOS(DAT)
1057: POPJ P,
DPYSER page# 0022 next prev
1059: BEGIN EXTBUF
1060:
1061: ↑EXTBUF: EXCH AC1,PPTR1(DAT)
1062: L2: MOVN AC2,WCNT(DAT)
1063: JUMPE AC2,GBLK
1064: CAILE AC2,10
1065: MOVEI AC2,10
1066: ADDM AC2,WCNT(DAT)
1067: MOVE AC3,AC2
1068: ASH AC3,2
1069: ADD AC3,AC2
1070: MOVEM AC3,CNT1(DAT)
1071: MOVE AC3,1(AC1)
1072: ADDI AC1,1(AC2)
1073: MOVEM AC3,(AC1)
1074: MOVEI AC3,1
1075: L1: SUBI AC1,1
1076: MOVEM AC3,(AC1)
1077: SOJG AC2,L1
1078: SUBI AC1,1
1079: TLZ AC1,760000
1080: EXCH AC1,PPTR1(DAT)
1081: POPJ P,
1082:
1083: GBLK:
1084: AOSLE BLKTOT(DDB)
1085: PUSHJ P,FBLK
1086: PUSHJ P,GETFS
1087: HRR AC1,AC2
1088: EXCH AC2,CBLKPT(DAT)
1089: MOVEI AC3,CBLKBT
1090: ANDCAM AC3,BLKBTS(AC2)
1091: MOVEM AC3,BLKBTS(AC1)
1092: MOVE AC3,GCINFO(AC2)
1093: MOVEM AC3,GCINFO(AC1)
1094: MOVNI AC3,INITWC
1095: MOVEM AC3,WCNT(DAT)
1096: MOVE AC3,INITWC(AC2)
1097: MOVEM AC3,(AC1)
1098: HRRM AC1,LINK(AC2)
1099: HRLM AC1,INITWC(AC2)
1100: HRLZM AC2,LINK(AC1)
1101: SOJA AC1,L2
1102:
1103: BEND EXTBUF.
DPYSER page# 0023 next prev
1105:
1106:
1107:
1108:
1109: GLITCH: SOS GLHCNT(DDB)
1110: MOVN AC3,DEL(DAT)
1111: SETOM GLTCH(DAT)
1112: SETOM PPINV(DAT)
1113: ADDM AC3,VPOS(DAT)
1114: PUSHJ P,PTMOVE
1115: SETZM PPINV(DAT)
1116: GLTCH3: PUSHJ P,POSLIN
1117: CAMLE AC3,VPOS(DAT)
1118: MOVE AC3,VPOS(DAT)
1119: PUSHJ P,GLNADR
1120: HRRZ AC1,TBLKPT(DAT)
1121: HRRZI AC3,BLKSIZ-1(AC1)
1122: CAIL AC2,(AC1)
1123: CAILE AC2,(AC3)
1124: JRST GLTCH4
1125: ADDI AC2,1
1126: HRLM AC2,TPJMP(DAT)
1127: PR1EL4: SOS AC1,GLCNT(DAT)
1128: ADJSIZ: CAMLE AC1,PGSIZ(DAT)
1129: JRST GLITCH
1130: POPJ P,
1131:
1132: CNTWRP: MOVEI AC3,CNT
1133: MOVEM AC3,@-2(AC2)
1134: JRST (AC2)
1135:
1136: GLTCH4: PUSHJ P,PR1FRE
1137: JRST GLTCH3
DPYSER page# 0024 next prev
1139:
1140:
1141:
1142:
1143:
1144:
1145:
1146:
1147: EOLSET: MOVE AC1,PPTR1(DAT)
1148: MOVEM AC1,SPTR1(DAT)
1149: SKIPGE DAT
1150: SETZM TPJMP+1(DAT)
1151: LDB AC1,[POINT 6,PPTR1(DAT),5]
1152: SUBI AC1,1
1153: IDIVI AC1,7
1154: JUMPE AC1,EOLSE3
1155: PUSH P,AC1
1156: SETZ CHR,
1157: EOLSE2: PUSHJ P,PUTCH1
1158: SOSLE (P)
1159: JRST EOLSE2
1160: SUB P,[XWD 1,1]
1161: EOLSE3: MOVE AC3,VPOS(DAT)
1162: ADDI AC3,1
1163: CAMLE AC3,GLW(DAT)
1164: MOVEM AC3,GLW(DAT)
1165: PUSHJ P,GLNADR
1166: MOVE AC2,PPTR1(DAT)
1167: MOVEM AC2,@PTRB(DAT)
1168: AOS VPOS(DAT)
1169: MOVEI CHR,12
1170: POPJ P,
DPYSER page# 0025 next prev
1172:
1173:
1174:
1175: GLNADR: ADD AC3,PTBEG(DAT)
1176: GLNAD2: CAMGE AC3,[-=20]
1177: JRST GLNAD1
1178: GLNAD4: CAIL AC3,=60
1179: JRST GLNAD3
1180: HRRZ AC2,PTRB(DAT)
1181: SUBI AC2,=20
1182: CAME AC2,PTB(DAT)
1183: JRST GLNAD5
1184: GLNAD6: HRRZ AC2,@PTRB(DAT)
1185: POPJ P,
1186:
1187: GLNAD1: ADDI AC3,=80
1188: JRST GLNAD2
1189:
1190: GLNAD3: SUBI AC3,=80
1191: JRST GLNAD4
DPYSER page# 0026 next prev
1193:
1194:
1195: GLNAD5: PUSHACS
1196: PUSHJ P,DISERR
1197: [ASCIZ ⊗SOMEBODY CLOBBERED PTRB!! - ⊗]
1198: DISARG OCT,<PTRB(DAT)>
1199: [ASCIZ ⊗
1200: ⊗]
1201: -1
1202: POPACS
1203: HRRZ AC2,PTB(DAT)
1204: CAML AC2,MEMSIZ
1205: CAML AC2,RMEMSIZ
1206: JRST GLNAD7
1207: ADDI AC2,=20
1208: HRLI AC2,AC3
1209: MOVEM AC2,PTRB(DAT)
1210: JRST GLNAD6
1211:
1212: GLNAD7: HRRZ AC2,PTRB(DAT)
1213: SUBI AC2,=20
1214: CAML AC2,MEMSIZ
1215: CAML AC2,RMEMSIZ
1216: JRST HELPX
1217: HRRZM AC2,PTB(DAT)
1218: JRST GLNAD6
1219:
1220: HELPX: PUSHJ P,DISERR
1221: [ASCIZ ⊗HELP! - CAN'T FIX IT
1222: ⊗]
1223: -1
1224: SETOM DISFLAG
1225: PUSHJ P,DISFLUSH
1226: JRST AUTOLOAD
DPYSER page# 0027 next prev
1228:
1229:
1230:
1231: POSLIN: LDB AC3,[POINT 11,PPOSV(DAT),21]
1232: TRNE AC3,1⊗=10
1233: OR AC3,[-1⊗=10]
1234: SKIPN PPDD(DAT)
1235: JRST POSLI1
1236: POSLI2: IMULI AC3,=20
1237: ASH AC3,-=9
1238: MOVNS AC3
1239: ADDI AC3,=20
1240: POPJ P,
1241:
1242: POSLI1: IMULI AC3,=12
1243: ASH AC3,-=9
1244: MOVNS AC3
1245: ADDI AC3,=12
1246: POPJ P,
DPYSER page# 0028 next prev
1248: FBLK: PUSH P,AC1
1249: FB1: MOVE AC1,GLCNT(DAT)
1250: SKIPLE BLKTOT(DDB)
1251: CAIG AC1,1
1252: JRST POPAJ
1253: PUSHJ P,GLITCH
1254: JRST FB1
1255:
1256: PR1FRE: MOVE AC2,TBLKPT(DAT)
1257: MOVEI AC1,TBLKBT
1258: ANDCAM AC1,BLKBTS(AC2)
1259: HRRZ AC2,LINK(AC2)
1260: CAML AC2,MEMSIZ
1261: CAML AC2,RMEMSIZ
1262: JRST PR1ERR
1263: PR1ER2: MOVEM AC2,TBLKPT(DAT)
1264: IORM AC1,BLKBTS(AC2)
1265: SOSG OUTCNT(DAT)
1266: PUSHJ P,PPOUT
1267: POPJ P,
1268:
1269: PR1ER3: PUSHACS
1270: PUSHJ P,DISMES
1271: ASCIZ /FIND A WIZARD OR RELOAD
1272: /
1273: PUSHJ P,DISFLU
1274: PUSHJ P,DDTCALL
1275: POPACS
1276: HALT AUTOLOAD
1277:
1278: PR1ERR: HRRZ AC3,PRGNUM(DDB)
1279: PUSHACS
1280: PUSH P,AC3
1281: PUSH P,AC2
1282: PUSHJ P,DISMES
1283: ASCIZ /BAD POINTER AT PR1FRE: /
1284: POP P,TAC
1285: PUSHJ P,DISLOC
1286: PUSHJ P,DISMES
1287: ASCIZ /, TTY = /
1288: POP P,TAC
1289: PUSHJ P,DISLOC
1290: PUSHJ P,DISCRLF
1291: POPACS
1292: MOVEI AC1,=20*=40/INITWC
1293: MOVE AC3,CBLKPT(DAT)
1294: PR1ER1: MOVEI AC2,(AC3)
1295: HLRZ AC3,LINK(AC3)
1296: CAML AC3,MEMSIZ
1297: CAML AC3,RMEMSIZ
1298: JRST PR1ER3
1299: CAME AC3,TBLKPT(DAT)
1300: SOJG AC1,PR1ER1
1301: JUMPLE AC1,PR1ER3
1302: MOVE AC3,TBLKPT(DAT)
1303: HRLM AC2,LINK(AC3)
1304: MOVEI AC1,TBLKBT
1305: JRST PR1ER2
DPYSER page# 0029 next prev
1307: PPOUT:
1308: MOVEI AC3,OUTNUM
1309: MOVEM AC3,OUTCNT(DAT)
1310: MOVE AC1,FBLKPT(DAT)
1311: SKIPA AC2,AC1
1312: HRRZ AC2,LINK(AC2)
1313: SOJG AC3,.-1
1314:
1315: HRRZ AC3,LINK(AC2)
1316: HRRZM AC3,FBLKPT(DAT)
1317: HRLM DAT,LINK(AC3)
1318: SETZM LINK(AC2)
1319: ↑SETRST:PUSHJ P,FREEL
1320: ↑↑WHORST:
1321: SKIPN III(DDB)
1322: POPJ P,
1323: PPRST: HRRZ AC3,PRGNUM(DDB)
1324: MOVEI AC2,PSELB(DDB)
1325: HRLI AC2,DISJMP
1326: MOVSM AC2,RSTTBL(AC3)
1327: POPJ P,
DPYSER page# 0030 next prev
1329:
1330:
1331:
1332: ↑ERRP2: HLRZ DAT,PPCALL(DDB)
1333: HLL DAT,DDB
1334: PUSHACS
1335: MOVE J,JOB(PID)
1336: PUSHJ P,PPCLR
1337: MOVE J,-17+J(P)
1338: MOVE TAC,(ITEM)
1339: ERRP3: CONO PI,SCNOFF
1340: PUSHJ P,TYOTAC
1341: CONO PI,SCNON
1342: JUMPN CHR,ERRP3
1343: POPACS
1344: JRA ITEM,1(ITEM)
DPYSER page# 0031 next prev
1346:
1347:
1348:
1349:
1350:
1351:
1352:
1353:
1354:
1355:
1356: PPFND1: HLL DAT,DDB
1357: HLRZ AC2,PPCALL(DDB)
1358: HRRZ TAC,UUO
1359: CAIL TAC,20
1360: JRST PPFER
1361: PFL2: HRRM AC2,DAT
1362: CAMN TAC,PPNO(DAT)
1363: POPJ P,
1364: HRRZ AC2,LINK(DAT)
1365: JUMPN AC2,PFL2
1366: POPJ P,
1367:
1368: PPFND: PUSHJ P,PPFND1
1369: JUMPN AC2,CPOPJ
1370: PUSH P,DAT
1371: PUSH P,TAC
1372: HLRE TAC,PRGNUM(DDB)
1373: PUSHJ P,PPINIT
1374: JSP UUO,DWPERR
1375: POP P,PPNO(AC1)
1376: POP P,DAT
1377: HRRM AC1,LINK(DAT)
1378: HRLZM DAT,LINK(AC1)
1379: HRRZM DDB,HEDPTR(AC1)
1380: MOVE AC3,PPRJMP(DAT)
1381: MOVEM AC3,PPRJMP(AC1)
1382: HRLM AC1,PPRJMP(DAT)
1383: MOVEM AC1,DAT
1384: HLL DAT,DDB
1385: POPJ P,
1386:
1387: PPFER:
1388: ERMS {ILLEGAL PIECE OF PAPER}
1389: JRST UUOERR
DPYSER page# 0032 next prev
1391:
1392:
1393:
1394: PPSEL1: PUSHJ P,PPFND
1395: HRRZM DAT,CURPP(DDB)
1396: MOVEI UUO,400000
1397: MOVN TAC,PPNO(DAT)
1398: LSH UUO,(TAC)
1399: POPJ P,
1400:
1401: PPREL: TRNN UUO,-1
1402: POPJ P,
1403: PUSHJ P,PPFND1
1404: JUMPE AC2,CPOPJ
1405: PUSH P,DDB
1406: PUSHJ P,PPWAIT
1407: POP P,DDB
1408: PUSHJ P,PPFND1
1409: JUMPE AC2,CPOPJ
1410: MOVE AC1,LINK(DAT)
1411: TRNE AC1,-1
1412: HLLM AC1,LINK(AC1)
1413: MOVSS AC1
1414: HLRM AC1,LINK(AC1)
1415: MOVE AC3,PPRJMP(DAT)
1416: MOVEM AC3,PPRJMP(AC1)
1417: JUMPG DAT,PPREL3
1418: PUSHJ P,POSLIN
1419: PUSH P,AC3
1420: PUSH P,GLW(DAT)
1421: SOS (P)
1422: PUSHJ P,PPERS
1423: SUB P,[XWD 2,2]
1424: PPREL3: MOVEM DDB,LINK(DAT)
1425:
1426: PPREL4: MOVE DDB,LINK(DAT)
1427: SKIPN PPENQ(DAT)
1428: SKIPE PPNQT(DAT)
1429: JRST CLKREL
1430: MOVE AC1,DAT
1431: PUSHJ P,CGIVFS
1432: MOVE AC1,FBLKPT(DAT)
1433: PUSHJ P,FREEL
1434: HRRZ AC1,PTB(DAT)
1435: PUSHJ P,FSGIVE
1436: PPREL2: HRRZ AC1,DAT
1437: CAME AC1,CURPP(DDB)
1438:
1439: POPJ P,
1440: MOVEI UUO,0
1441: JRST PPSELN
1442:
1443: CLKREL: HRLI DAT,PPREL4
1444: JRST DPYTIM
DPYSER page# 0033 next prev
1446:
1447:
1448: PPSEL: PUSHJ P,PPWAIT
1449: PUSHJ P,PRGFND
1450: POPJ P,
1451: PPSELN: PUSHJ P,PPSEL1
1452:
1453:
1454:
1455:
1456: PPACT: MOVEI AC1,DISJMP
1457: MOVEI AC2,DISNOP
1458: HLRZ AC3,PPCALL(DDB)
1459: PACTL1: MOVE TAC,UUO
1460: ROT TAC,@PPNO(AC3)
1461: HRRM AC2,TPJMP(AC3)
1462: TRNE TAC,400000
1463: HRRM AC1,TPJMP(AC3)
1464: MOVE TAC1,PRGACT(DDB)
1465: ROT TAC1,@PPNO(AC3)
1466: XOR TAC1,TAC
1467: TRNE TAC1,400000
1468: JRST PACTL2
1469: PACTL3: HRRZ AC3,LINK(AC3)
1470: JUMPN AC3,PACTL1
1471: HRRM UUO,PRGACT(DDB)
1472: POPJ P,
1473:
1474: PACTL2: TRNN TAC,400000
1475: JRST PACTL4
1476: SETOM PPVIRG(AC3)
1477: JRST PACTL3
1478:
1479: PACTL4: SKIPE PPVIRG(AC3)
1480: JRST PACTL3
1481: PUSH P,DAT
1482: MOVE DAT,AC3
1483: PUSHJ P,POSLIN
1484: PUSH P,AC3
1485: PUSH P,GLW(DAT)
1486: SOS (P)
1487: PUSHJ P,PPERS
1488: SUB P,[XWD 2,2]
1489: MOVE AC3,DAT
1490: POP P,DAT
1491: MOVEI AC1,DISJMP
1492: MOVEI AC2,DISNOP
1493: JRST PACTL3
DPYSER page# 0034 next prev
1495:
1496:
1497: PPWAIT: CONSZ PI,77400
1498: POPJ P,
1499: MOVE ITEM,JOB
1500: MOVE DDB,JBTLIN(ITEM)
1501: CAME DDB,[-1]
1502: SKIPN DDB,TTYTAB(DDB)
1503: POPJ P,
1504: MOVE TAC,DEVIOS(DDB)
1505: TLNN TAC,TOIP
1506: POPJ P,
1507: PUSHJ P,DDTWAT
1508: MOVE ITEM,JOB(PID)
1509: POPJ P,
DPYSER page# 0035 next prev
1511:
1512:
1513: PPYPOS: SETZ AC1,
1514: DPB AC1,POSSBU
1515: PUSHJ P,POSLIN
1516: PUSH P,AC3
1517: PUSH P,GLW(DAT)
1518: PPYPO1: SETOM PPINV(DAT)
1519: DPB UUO,[POINT 11,PPOSV(DAT),21]
1520: PUSHJ P,POSLIN
1521: MOVE AC1,AC3
1522: MOVE AC2,AC3
1523: MOVN AC3,-1(P)
1524: ADD AC3,AC1
1525: JUMPE AC3,PPYPO3
1526: MOVEM AC2,LLW(DAT)
1527: PUSHJ P,PTMOVE
1528: ADDM AC3,VPOS(DAT)
1529: SETZM PPINV(DAT)
1530: JUMPGE DAT,PPYPO3
1531: JUMPN AC3,PPYPO2
1532: PPYPO4: SUB P,[XWD 2,2]
1533: REFPAG: JUMPGE DAT,CPOPJ
1534: PUSH P,DAT
1535: HRRZ DAT,HEDPTR(DAT)
1536: PUSHJ P,LERFP
1537: POP P,DAT
1538: POPJ P,
1539:
1540: PPYPO3: SUB P,[XWD 2,2]
1541: SETZM PPINV(DAT)
1542: POPJ P,
DPYSER page# 0036 next prev
1544:
1545:
1546:
1547: PPYPO2: ADDM AC3,GLW(DAT)
1548: HRRZ AC1,TPJMP(DAT)
1549: SKIPN PPVIRG(DAT)
1550: CAIN AC1,DISNOP
1551: JRST PPYPO4
1552: MOVE AC2,(P)
1553: SUB AC2,-1(P)
1554: MOVM AC1,AC3
1555: CAML AC1,AC2
1556: JRST PPYPO5
1557: SUB AC2,AC1
1558: MOVN AC1,AC2
1559: SKIPG AC3
1560: JRST PPYPDN
1561: ADDM AC1,(P)
1562: SOS (P)
1563: PPYPO5: PUSHJ P,PPERS
1564: JRST PPYPO4
1565:
1566: PPYPDN: ADDM AC2,-1(P)
1567: JRST PPYPO5
DPYSER page# 0037 next prev
1569:
1570:
1571:
1572:
1573: PPERS: PUSHJ P,GETQ
1574: PUSH P,AC1
1575: PUSHJ P,GETQ
1576: POP P,TAC
1577: MOVE AC2,-2(P)
1578: MOVE AC3,-1(P)
1579: CAMGE AC3,AC2
1580: MOVE AC3,AC2
1581: HRLM AC2,QLINE(AC1)
1582: HRLM AC2,QLINE(TAC)
1583: HRRM AC3,QLINE(AC1)
1584: HRRM AC3,QLINE(TAC)
1585: HRLM DAT,(AC1)
1586: HRLM DAT,(TAC)
1587: MOVEI AC2,ERASE
1588: HRRM AC2,(AC1)
1589: HRRM AC2,(TAC)
1590: SETZM QFIELD(TAC)
1591: SETOM QFIELD(AC1)
1592: SETZM QCOUNT(TAC)
1593: SETZM QCOUNT(AC1)
1594: PUSH P,TAC
1595: PUSHJ P,QBLOCK
1596: POP P,AC1
1597: JRST QBLOCK
DPYSER page# 0038 next prev
1599:
1600:
1601:
1602:
1603:
1604:
1605: PTMOVE: PUSH P,AC3
1606: MOVNS AC3
1607: ADD AC3,PTBEG(DAT)
1608: PTMOV2: CAIL AC3,=80
1609: JRST PTMOV1
1610: PTMOV4: SKIPGE AC3
1611: JRST PTMOV3
1612: MOVEM AC3,PTBEG(DAT)
1613: POP P,AC3
1614: POPJ P,
1615:
1616: PTMOV1: SUBI AC3,=80
1617: JRST PTMOV2
1618:
1619: PTMOV3: ADDI AC3,=80
1620: JRST PTMOV4
DPYSER page# 0039 next prev
1622:
1623:
1624: PPXSIZ:
1625: SETZ AC1,
1626: DPB AC1,SIZSBU
1627: MOVE AC1,GLCNT(DAT)
1628: IMUL AC1,DEL(DAT)
1629: SUB AC1,DELCNT(DAT)
1630: PUSH P,AC1
1631: LDB AC1,[POINT 9,UUO,26]
1632: LDB AC2,[POINT 9,UUO,35]
1633: IMUL AC2,AC1
1634: CAIG AC2,1
1635: JRST PPX1
1636: MOVEI AC3,=40
1637: CAIG AC2,(AC3)
1638: CAILE AC1,CNT
1639: JRST PPXERR
1640: PPX2: MOVEM AC1,PGSIZ(DAT)
1641: DPB UUO,[POINT 9,DEL(DAT),35]
1642: POP P,AC1
1643: IDIV AC1,DEL(DAT)
1644: MOVEM AC1,GLCNT(DAT)
1645: AOS GLCNT(DAT)
1646: SUB AC2,DEL(DAT)
1647: MOVNM AC2,DELCNT(DAT)
1648: MOVE AC1,GLCNT(DAT)
1649: PUSHJ P,ADJSIZ
1650: JRST REFPAG
1651:
1652: PPXERR: CONSZ PI,77400
1653: JRST POPAJ
1654: ERMS {ILLEGAL PAGE SIZE SPEC.}
1655: JRST UUOERR
1656:
1657: PPX1: MOVEI UUO,2
1658: MOVEI AC1,1
1659: JRST PPX2
DPYSER page# 0040 next prev
1661:
1662:
1663: ↑DPYCLK:
1664: HGMAC(35)
1665: SKIPE AC1,FSWTHD
1666: PUSHJ P,FREE
1667: CONO PI,PIOFF
1668: MOVE AC1,FSWT2H
1669: MOVEM AC1,FSWTHD
1670: SETZM FSWT2H
1671: CONO PI,PION
1672: MOVE AC1,FSW2C
1673: MOVEM AC1,FSWC
1674: SETZM FSW2C
1675: HGMAC(36)
1676: SKIPLE WHOPTR
1677: PUSHJ P,WHOQUE
1678: HGMAC(37)
1679: EXCH P,DPYPDL
1680: SETOM CLKLVL
1681: AOSN WTFLG
1682: POPJ P,
1683: SKIPN @CLKQ
1684: JRST CLKRTN
1685: HRRZ TAC,CLKQ
1686: MOVEM TAC,CLKQTMP
1687: CLKL1: CONO PI,PIOFF
1688: MOVE DAT,@CLKQ
1689: SOS CLKQ
1690: EXCH DAT,(TAC)
1691: CONO PI,PION
1692: HLRZ TAC,DAT
1693: PUSHJ P,(TAC)
1694: HGMAC(37)
1695: SOS TAC,CLKQTMP
1696: CAIL TAC,CLKQUE
1697: JRST CLKL1
1698: CLKRTN: EXCH P,DPYPDL
1699: SETZM CLKLVL
1700: POPJ P,
DPYSER page# 0041 next prev
1702:
1703:
1704:
1705:
1706: WHOQUE: MOVNI AC3,2
1707: EXCH AC3,WHOPTR
1708:
1709:
1710:
1711: MOVEI DAT,0
1712: CAIN AC3,DDAVLU
1713: JRST WHOQ2
1714: SKIPE DAT,FRETAB(AC3)
1715: SKIPN AC2,LETAB(AC3)
1716: JRST WHOQ1
1717: MOVE AC2,CURPP(AC2)
1718: MOVE AC2,DDCW(AC2)
1719: SKIPN DAT,FRETAB(AC3)
1720: JRST WHOQ1
1721: MOVEM AC2,(DAT)
1722: WHOQ2: PUSHJ P,GETQ
1723: MOVEM AC3,QHPOS(AC1)
1724: HRLI DAT,WHOWRT
1725: MOVSM DAT,(AC1)
1726: SETZM QFIELD(AC1)
1727: MOVE AC2,[XWD 1,2]
1728: CAIN AC3,DDAVLU
1729: MOVE AC2,AVLLN
1730: MOVEM AC2,QLINE(AC1)
1731: SETZM QCOUNT(AC1)
1732: PUSH P,AC3
1733: PUSHJ P,QBLOCK
1734: PUSHJ P,GETQ
1735: POP P,QHPOS(AC1)
1736: MOVSM DAT,(AC1)
1737: SETOM QFIELD(AC1)
1738: MOVE AC2,[XWD 1,2]
1739: CAIN AC3,DDAVLU
1740: MOVE AC2,AVLLN
1741: MOVEM AC2,QLINE(AC1)
1742: SETZM QCOUNT(AC1)
1743: JRST QBLOCK
1744:
1745: WHOQ1: SETZM WHOPTR
1746: POPJ P,
DPYSER page# 0042 next prev
1748:
1749:
1750:
1751: FREE: JUMPE AC1,CPOPJ
1752: CAML AC1,MEMSIZ
1753: CAML AC1,RMEMSIZ
1754: POPJ P,
1755: HRRZ TAC,LINK(AC1)
1756: PUSHJ P,SFSGIV
1757: DPYFS
1758: MOVE AC1,TAC
1759: JRST FREE
1760:
1761: GETFS: PUSH P,AC1
1762: PUSHJ P,UGETFS
1763: MOVE AC2,AC1
1764: POPAJ: POP P,AC1
1765: POPJ P,
1766:
1767: CLKWAT: CONSZ PI,77000
1768: JRST ARRRGH
1769: MOVEM 17,SVAC+17
1770: MOVEI 17,SVAC
1771: BLT 17,SVAC+16
1772: SETOM WTFLG
1773: PUSHJ P,CLKRTN
1774: MOVSI 17,SVAC
1775: BLT 17,17
1776: POPJ P,
1777:
1778: ARRRGH: PUSHACS
1779: PUSHJ P,DISDAT
1780: PUSHJ P,DISMES
1781: ASCIZ /AT CLKWAT IN CH5!!!!!
1782: /
1783: PUSHJ P,DISFLU
1784: SKIPN DEBMOD
1785: JRST AUTOLO
1786: POPACS
1787: PUSHJ P,DDTCAL
1788: JRST .-1
DPYSER page# 0043 next prev
1790:
1791:
1792:
1793:
1794: PRGF2: MOVE DDB,PTYJOB-PTYL0(DDB)
1795: SKIPA DDB,JBTLIN(DDB)
1796: PRGF1: MOVE DDB,JBTLIN(ITEM)
1797: TLNE DDB,PTYLIN
1798: JUMPG DDB,PRGF2
1799: HRRZ AC1,DDB
1800: AOJE DDB,CPOPJ1
1801: TLNN DDB,DISLIN!DDDLIN
1802: JRST CPOPJ1
1803: HRRZ DDB,LETAB-DPYL0-1(DDB)
1804: PRGF3: HRRZ AC1,PRGNUM(DDB)
1805: CAIL AC1,DPYNUM
1806: TLO DDB,400000
1807: POPJ P,
1808:
1809: PRGFND: SKIPN DDB,DPYMAP(ITEM)
1810: PUSHJ P,PRGF1
1811: JRST CPOPJ1
1812: PRGFER: CONSO PI,77400
1813: POPJ P,
1814: CONSZ PI,400
1815: SKIPN SPWUUF(PID)
1816: JRST PRGFE1
1817: POPJ P,
1818:
1819: PRGFE1: PUSHJ P,DISERR
1820: [ASCIZ ⊗ILLEGAL JOB NUMBER AT PRGFND NOT AT UUO LEVEL
1821: ⊗]
1822: -1
1823: JRST DPYATL
1824:
1825: DDFND: PUSHJ P,PRGFND
1826: CAIA
1827: JRST CPOPJ1
1828: CAIE UCHN,3
1829: POPJ P,
1830: MOVEI AC3,DPYLEN
1831: PUSHJ P,UFSGET
1832: MOVE DDB,AC1
1833: SETOM DPRLSF(DDB)
1834: SETOM PRGNUM(DDB)
1835: SETZM PRGCNT(DDB)
1836: TLO DDB,400000
1837: JRST CPOPJ1
DPYSER page# 0044 next prev
1839:
1840:
1841: ↑PPIOT: PUSHJ P,PRGFND
1842: POPJ P,
1843: MOVE DAT,CURPP(DDB)
1844: HLL DAT,DDB
1845: CAIG UCHN,MPPIOT
1846: JRST @PPIOTX(UCHN)
1847: JRST UUOERR
1848:
1849: DEFINE UUOS{FOR X IN(PPSEL,PPACT,<DPYPOS,,PPYPOS>,<DPYSIZ,,PPXSIZ>
1850: ,PPREL,PPINFO,LEYPOS,PPHLD)}
1851:
1852: UUOMAC PPIOTX,PPIOT
1853: MPPIOT←←UUOCNT-1
DPYSER page# 0045 next prev
1855:
1856:
1857: ↑DPYCLR:JUMPN UCHN,DPYFOO
1858: ↑DPYRST:SETZM DPYMAP(ITEM)
1859: PUSHJ P,PRGF1
1860: SKIPA
1861: POPJ P,
1862: PUSHJ P,PGCLR
1863: ↑PPCLR: MOVEI UUO,17
1864:
1865:
1866:
1867: PUSH P,UUO
1868: PPC1: PUSHJ P,PPREL
1869: SOSE UUO,(P)
1870: JRST PPC1
1871: SUB P,[XWD 1,1]
1872:
1873: HLL DAT,DDB
1874: PUSH P,DDB
1875: PUSHJ P,PPSEL
1876: PPC2: MOVE DDB,(P)
1877: SETZ UUO,
1878: PUSHJ P,LEYPOS
1879: SETZ UUO,
1880: PUSHJ P,PPHLD
1881: MOVEI UUO,YPIII
1882: SKIPGE DDB,(P)
1883: MOVEI UUO,YPDD
1884: PUSHJ P,PPYPOS
1885: MOVEI UUO,NGSIII*1000+NLSIII
1886: POP P,DDB
1887: JUMPGE DDB,PPXSIZ
1888: MOVEI UUO,NGSDD*1000+NLSDD
1889: PUSHJ P,PPXSIZ
1890: HRRZ TAC,PRGNUM(DDB)
1891: SUBI TAC,DPYNUM
1892: PUSHJ P,VDRST1
1893: JRST VDOUT
DPYSER page# 0046 next prev
1895:
1896:
1897: ↑PPNSET:
1898: PUSHJ P,SETPHD
1899: PUSH P,[PPNST1]
1900: PUSH P,DDB
1901: JRST PPC2
1902:
1903: PPNST1: SETO AC1,
1904: DPB AC1,SIZSBU
1905: DPB AC1,POSSBU
1906: POPJ P,
1907:
1908: SETPHD: HRRZ DDB,DAT
1909: SKIPN III(DDB)
1910: TLO DDB,400000
1911: MOVE DAT,CURPP(DDB)
1912: HLL DAT,DDB
1913: POPJ P,
1914:
1915:
1916:
1917: ↑PPGSET:
1918: PUSHJ P,SETPHD
1919: MOVEI AC3,NGSIII
1920: SKIPG DAT
1921: MOVEI AC3,NGSDD
1922: SKIPN UUO,LEARG(DDB)
1923: MOVE UUO,AC3
1924: LSH UUO,=9
1925: ADD UUO,DEL(DAT)
1926: PPGST1: PUSHJ P,PPXSIZ
1927: SETO AC1,
1928: DPB AC1,SIZSBU
1929: POPJ P,
DPYSER page# 0047 next prev
1931:
1932:
1933: ↑PPLSET:
1934: PUSHJ P,SETPHD
1935: MOVEI AC3,NLSIII
1936: SKIPG DAT
1937: MOVEI AC3,NLSDD
1938: MOVE UUO,PGSIZ(DAT)
1939: LSH UUO,=9
1940: SKIPN AC2,LEARG(DDB)
1941: MOVE AC2,AC3
1942: ADD UUO,AC2
1943: JRST PPGST1
1944:
1945:
1946:
1947: ↑PPYSET:
1948: PUSHJ P,SETPHD
1949: MOVEI AC3,YPIII
1950: MOVE UUO,LEARG(DDB)
1951: JUMPL DDB,PPYDD
1952: MOVEI AC3,YPIII
1953: IMUL UUO,[-30]
1954: ADDI UUO,770+30
1955: PPYS2: CAIL UUO,1000
1956: MOVEI UUO,(AC3)
1957: PUSHJ P,PPYPOS
1958: SETO AC1,
1959: DPB AC1,POSSBU
1960: POPJ P,
1961:
1962: PPYDD: MOVEI AC3,YPDD
1963: LSH UUO,7
1964: IDIV UUO,[-5]
1965: ADDI UUO,1000
1966: JRST PPYS2
DPYSER page# 0048 next prev
1968:
1969:
1970:
1971: PPHLD: SETZ AC1,
1972: TRNE UUO,1B18
1973: JRST PPHLD1
1974: DPB AC1,LHCSBU
1975: LDB AC2,[POINT 8,UUO,26]
1976: DPB AC2,HLINES
1977: SKIPN AC2
1978: SETO AC2,
1979: MOVEM AC2,LHCNT(DDB)
1980: PPHLD1: TRNE UUO,1B27
1981: JRST PPHLD2
1982: DPB AC1,GHCSBU
1983: LDB AC2,[POINT 8,UUO,35]
1984: DPB AC2,HGLTCH
1985: SKIPN AC2
1986: SETO AC2,
1987: MOVEM AC2,GLHCNT(DDB)
1988: PPHLD2: SETZ AC1,
1989: EXCH AC1,DPHOLD(DDB)
1990: JUMPE AC1,CPOPJ
1991: HRRZ AC1,PRGNUM(DDB)
1992: ADD AC1,[XWD UNHOLD,DPYL0]
1993: CONO PI,PIOFF
1994: IDPB AC1,CLKQ
1995: CONO PI,PION
1996: POPJ P,
DPYSER page# 0049 next prev
1998:
1999:
2000:
2001:
2002:
2003:
2004:
2005:
2006:
2007:
2008:
2009:
2010:
2011:
2012:
2013:
2014:
2015: ↑PPSPY: HRR UUO,TAC
2016: HLRE ITEM,TAC
2017: JUMPL ITEM,PPSPY1
2018: JUMPE ITEM,CPOPJ
2019: CAILE ITEM,JOBN
2020: POPJ P,
2021: MOVE AC1,JBTSTS(ITEM)
2022: TLNN AC1,JNA
2023: POPJ P,
2024: PUSHJ P,PRGF1
2025: PPSPY2: SKIPA DAT,CURPP(DDB)
2026: POPJ P,
2027: HLL DAT,DDB
2028: AOS (P)
2029:
2030: PPINFO: MOVE AC1,PRGACT(DDB)
2031: XCTR XW,[MOVEM AC1,(UUO)]
2032: MOVE AC1,PPNO(DAT)
2033: XCTR XW,[MOVEM AC1,1(UUO)]
2034: LDB AC1,[POINT 11,LEPOS(DDB),21]
2035: TRNE AC1,1⊗=10
2036: ORI AC1,-1⊗=10
2037: MOVE AC2,DDCW(DAT)
2038: TLNE AC2,(1B5)
2039: TLO AC1,(1B0)
2040: SETZ AC2,
2041: EXCH AC2,LECC(DDB)
2042: SKIPE AC2
2043: TLO AC1,(1B1)
2044: JUMPGE DDB,.+2
2045: TLO AC1,(1B2)
2046: XCTR XW,[MOVEM AC1,2(UUO)]
2047: ADDI UUO,3
2048: IFE 1,<
2049: HRL AC1,UUO
2050: HRRI AC1,1(UUO)
2051: XCTR XW,[SETZM (UUO)]
2052: XCTR XRW,[BLT AC1,17(UUO)]
2053: >
2054: IFN 1,<
2055: MOVEI AC1,17(UUO)
2056: PPINF0: XCTR XW,[SETZM (AC1)]
2057: CAIE AC1,(UUO)
2058: SOJA AC1,PPINF0
2059: >
DPYSER page# 0050 next prev
2061:
2062:
2063: HLRZ AC1,PPCALL(DDB)
2064: PPINF1: LDB AC2,[POINT 11,PPOSV(AC1),21]
2065: TRNE AC2,1⊗10
2066: OR AC2,[-1⊗10]
2067: LSH AC2,=9
2068: ADD AC2,PGSIZ(AC1)
2069: LSH AC2,=9
2070: ADD AC2,DEL(AC1)
2071: MOVE AC3,PPNO(AC1)
2072: ADD AC3,UUO
2073: XCTR XW,[MOVEM AC2,(AC3)]
2074: HRRZ AC1,LINK(AC1)
2075: JUMPN AC1,PPINF1
2076: MOVE AC1,GWORD(DDB)
2077: XCTR XW,[MOVEM AC1,=19-3(UUO)]
2078: POPJ P,
2079:
2080: PPSPY1: MOVMS ITEM
2081: MOVE DDB,LINTAB(ITEM)
2082: TLNN DDB,DISLIN!DDDLIN
2083: POPJ P,
2084: HRRZ DDB,LETAB-DPYL0(DDB)
2085: JUMPE DDB,CPOPJ
2086: PUSHJ P,PRGF3
2087: JRST PPSPY2
DPYSER page# 0051 next prev
2089:
2090:
2091:
2092:
2093:
2094: LEYPOS: MOVE AC1,[BYTE (11)<-777>,0(3)0,0(2)1,2(3)3]
2095: TRNN UUO,-1
2096: SKIPA AC1,[DISNOP]
2097: DPB UUO,[POINT 11,AC1,21]
2098: MOVEM AC1,LEPOS(DDB)
2099: JUMPG DAT,CPOPJ
2100: SETO AC1,
2101: EXCH AC1,LECLK(DDB)
2102: JUMPN AC1,CPOPJ
2103: HRR AC1,DDB
2104: HRLI AC1,DPLED
2105: CONO PI,PIOFF
2106: IDPB AC1,CLKQ
2107: CONO PI,PION
2108: POPJ P,
DPYSER page# 0052 next prev
2110:
2111:
2112:
2113: FOOFRL: HRRZ AC1,UUO
2114: PUSHJ P,FSGIVE
2115: HRRZ AC1,TAC1
2116: JUMPE AC1,CPOPJ
2117: FREEL: HRRZ AC3,LINK(AC1)
2118: PUSHJ P,CGIVFS
2119: MOVEM AC3,AC1
2120: JUMPN AC1,FREEL
2121: POPJ P,
2122:
2123: DPYFOO: JSP AC3,FNDJOB
2124: EXCH DAT,ITEM
2125: PUSHJ P,PRGFND
2126: POPJ P,
2127: MOVEM DDB,DPYMAP(DAT)
2128: POPJ P,
DPYSER page# 0053 next prev
2130:
2131:
2132:
2133:
2134:
2135: ↑UPGIOT: BEGIN UPG
2136:
2137: T2←DSER
2138: PBSZ←←CNT
2139: SIZE←←=17
2140: PGWC←←0
2141: PGSA←←1
2142: PGNP←←2
2143:
2144: PUSHJ P,PGSET
2145: POPJ P,
2146: JUMPL DDB,DDUPG
2147: MOVEM ITEM,CURPG(DDB)
2148: XCTR XR,[HRLZ TEM,(UUO)]
2149: XCTR XR,[MOVM AC3,1(UUO)]
2150: CAIL AC3,NBS*PBSZ
2151: JRST UPGTB
2152: HRLZM AC3,UCHN
2153: MOVEI TAC,PBSZ-1+PGNP(AC3)
2154: IDIVI TAC,PBSZ
2155: MOVEI T2,(TAC)
2156: SUB TAC,SIZE(ITEM)
2157: ADD TAC,BLKTOT(DDB)
2158: JUMPG TAC,UPGER1
2159: HRREI TAC,-1(T2)
2160: SETZM SIZE(ITEM)
2161: MOVEI TAC1,DISNOP
2162: JUMPE AC3,UPREL1
2163: MOVEI AC3,NBS+2
2164: PUSHJ P,UGETF1
2165: JUMPL AC1,CPOPJ
2166: MOVEM AC1,UUO
2167: MOVEI TAC1,0
2168: TLOA UUO,TAC
2169: L1: MOVEM AC1,TAC1
2170: PUSHJ P,CGETFS
2171: JUMPL AC1,FOOFRL
2172: MOVSM AC1,@UUO
2173: MOVEM TAC1,LINK(AC1)
2174: SOJGE TAC,L1
2175: MOVEM T2,SIZE(ITEM)
DPYSER page# 0054 next prev
2177: MOVN TAC1,UCHN
2178: HLR TAC1,TEM
2179: HRR UCHN,UUO
2180: HLRZ T2,(UUO)
2181: ADD UCHN,[XWD PGNP,0]
2182: HLRZM UCHN,PGWC(T2)
2183: HLRZM TEM,PGSA(T2)
2184: ADD T2,[XWD -PBSZ+PGNP,PGNP]
2185: LOOP: XCTR XR,[MOVE (TAC1)]
2186: TRNN 3
2187: PUSHJ P,SPECOP
2188: MOVEM (T2)
2189: AOBJP TAC1,DONE
2190: AOBJN T2,LOOP
2191: MOVE 1(UCHN)
2192: HRRI DISJMP
2193: MOVEM (T2)
2194: ADD [XWD 1,0]
2195: MOVEM 1(T2)
2196: HLR T2,1(UCHN)
2197: HRLI T2,-PBSZ
2198: AOJA UCHN,LOOP
2199:
2200: UPGTB: ERMS {PIECE OF GLASS TOO BIG.}
2201: POPJ P,
2202:
2203: SPECOP: LDB AC1,[POINT 3,0,33]
2204: XCT SPCTBL(AC1)
2205: POPJ P,
2206:
2207: DONE: MOVE TAC1,(UUO)
2208: ADD TAC1,[XWD PGNP,DISJMP]
2209: MOVEM TAC1,1(T2)
2210: MOVEM TAC1,2(T2)
2211: HRRZ AC1,UUO
2212: PUSHJ P,FSGIVE
2213: HRRI TAC1,DISJSR
2214: ↑UPREL1:HLRZ AC1,PGCALL(DDB)
2215: SUBI AC1,(ITEM)
2216: MOVSI AC2,400000
2217: LSH AC2,(AC1)
2218: TRNE TAC1,20
2219: IORM AC2,PRGACT(DDB)
2220: TRNN TAC1,20
2221: ANDCAM AC2,PRGACT(DDB)
2222: EXCH TAC1,(ITEM)
2223: HLRZS AC1,TAC1
2224: JUMPE TAC1,CPOPJ
2225:
2226: SUBI AC1,PGNP
2227: JRST SETRST
DPYSER page# 0055 next prev
2229:
2230:
2231:
2232:
2233: SPCTBL: JRST HLTOP
2234: JRST ILLJMS
2235: JRST SELCHK
2236: JRST ADRRST
2237: JRST ADROP
2238: JRST ADROP
2239: JRST SELCHK
2240: JRST ADROP
2241:
2242: SELCHK: MOVE TAC,JOB
2243: MOVE TAC,JBTPRV(TAC)
2244: TLNE TAC,UPGPRV
2245: POPJ P,
2246: MOVE TAC,[<77770010>⊗DPYNUM]
2247: MOVEI AC2,DPYNUM-1
2248: PUSH P,TAC1
2249: LOOPS: LSH TAC,-1
2250: SKIPN AC3,TTYTAB+DPYL0(AC2)
2251: JRST DCHNOK
2252: MOVE TAC1,DEVMOD(AC3)
2253: LDB AC3,[POINT 6,1(AC3),5]
2254: TDNE TAC1,[XWD TTYATC,ASSCON!ASSPRG]
2255: CAMN AC3,JOB(PID)
2256: DCHNOK: TLO TAC,400000
2257: SOJGE AC2,LOOPS
2258: POP P,TAC1
2259: MOVSI AC2,400000
2260: MOVN AC3,PRGNUM(DDB)
2261: LSH AC2,(AC3)
2262: TDO TAC,AC2
2263: AND TAC
2264: POPJ P,
DPYSER page# 0056 next prev
2266:
2267:
2268:
2269: ADRRST: TRNN 60
2270: POPJ P,
2271:
2272:
2273:
2274:
2275:
2276:
2277:
2278:
2279: ADROP: SUB TEM
2280: CAML UCHN
2281: JRST ILLAD
2282: ADD 0,[XWD PGNP,0]
2283: HLRE AC1,0
2284: IDIVI AC1,PBSZ
2285: HRL 0,AC2
2286: MOVE TAC,AC1
2287: ADD @UUO
2288: JUMPGE AC1,CPOPJ
2289: ILLAD: PUSHJ P,DPYERR
2290: ERMS {ILLEGAL INSTR. ADDRESS.}
2291: ILL1: MOVEI DISNOP
2292: POPJ P,
2293:
2294: ILLJMS: PUSHJ P,DPYERR
2295: ERMS {JMS NOT LEGAL
2296: JRST ILL1
2297:
2298: HLTOP: MOVE (UUO)
2299: ADD [XWD PGNP,DISJMP]
2300: POPJ P,
2301:
2302: UPGER1: ERMS {TOTAL DPY BUFFER SPACE EXCEEDED.}
2303: POPJ P,
DPYSER page# 0057 next prev
2305:
2306:
2307:
2308:
2309:
2310:
2311:
2312:
2313:
2314:
2315:
2316:
2317:
2318:
2319: DDUPG: SKIPE DDOFF
2320: POPJ P,
2321: PUSHJ P,DDWAIT
2322: XCTR XR,[SKIPGE AC1,(UUO)]
2323: XCTR XW,[SETZM 2(UUO)]
2324: XCTR XR,[SKIPG AC2,1(UUO)]
2325: POPJ P,
2326: ADDI AC2,-1(AC1)
2327: XCTR XR,[SKIPE (AC2)]
2328: XCTR XW,[SETZM (AC2)]
2329: MOVEI AC3,10
2330: DDCWL: XCTR XR,[MOVE AC2,(AC1)]
2331: LDB TAC,[POINT 3,AC2,35]
2332: CAIN TAC,4
2333: JRST CHKAD
2334: DDCINC: ADDI AC1,1
2335: SOJG AC3,DDCWL
2336: HLRE TAC,PRGNUM(DDB)
2337: JUMPGE TAC,DDSCHN
2338: JRST ILLCHN
2339:
2340: DDWAIT: SKIPN PRGCNT(DDB)
2341: POPJ P,
2342: MOVNI AC2,DIOWQ
2343: MOVEI AC3,400000
2344: CONO PI,APROFF
2345: SKIPN PRGCNT(DDB)
2346: JRST APRONJ
2347: MOVEM AC2,JOBQUE(J)
2348: IORM AC3,PRGJMP(DDB)
2349: CONO PI,APRON
2350: SKIPGE JBTLIN(J)
2351: JRST WSCHED
2352: PUSHJ P,WSCHED
2353: JRST DDWAIT
2354:
2355: APRONJ: CONO PI,APRON
2356: POPJ P,
DPYSER page# 0058 next prev
2358:
2359:
2360: DDSCHN: MOVE AC1,[CW 1,47,3,1,2,0]
2361: DPB TAC,[POINT 8,AC1,23]
2362: MOVEM AC1,PRGCW(DDB)
2363: XCTR XR,[MOVE AC2,(UUO)]
2364: PUSHJ P,CHKADR
2365: HRLI AC2,DISJMP
2366: MOVSM AC2,PRGJMP(DDB)
2367: MOVEI TAC,
2368: XCTR XR,[SKIPL (UUO)]
2369: JRST UPGQ0
2370: XCTR XRW,[MOVES 2(UUO)]
2371: MOVEI AC2,2(UUO)
2372: PUSHJ P,CHKADR
2373: MOVEI TAC,(AC2)
2374: UPGQ0: PUSHJ P,GETQ
2375: XCTR XR,[MOVE AC3,(UUO)]
2376: TLNN AC3,200000
2377: JRST UPGQ1
2378: XCTR XR,[HRRZ AC2,3(UUO)]
2379: XCTR XRW,[MOVES (AC2)]
2380: PUSHJ P,CHKADR
2381: HRLI TAC,(AC2)
2382: PUSH P,AC1
2383: PUSHJ P,GETQ
2384: SETOM QFIELD(AC1)
2385: PUSHJ P,UPGQ
2386: POP P,AC1
2387: UPGQ1: SETZM QFIELD(AC1)
2388: PUSHJ P,UPGQ
2389: XCTR XR,[SKIPL (UUO)]
2390: JRST DDWAIT
2391: POPJ P,
2392:
2393: UPGQ: HRLM DDB,(AC1)
2394: MOVEI AC2,POG
2395: HRRM AC2,(AC1)
2396: MOVEI AC2,PRGCNT(DDB)
2397: MOVEM AC2,QCOUNT(AC1)
2398: MOVEM TAC,QHPOS(AC1)
2399: TRNE TAC,-1
2400: AOS (TAC)
2401: AOS PRGCNT(DDB)
2402: MOVEM J,QWAKE(AC1)
2403: MOVE AC2,[XWD 1,50]
2404: MOVEM AC2,QLINE(AC1)
2405: AOS JBTGLU(J)
2406: IFN FTSTAT,<PUSHJ P,GLUSTT>
2407: JRST QBLOCK
DPYSER page# 0059 next prev
2409:
2410:
2411: CHKAD: LDB TAC,[POINT 3,AC2,26]
2412: CAIN TAC,2
2413: JRST CHKAC1
2414: LDB TAC,[POINT 3,AC2,29]
2415: CAIN TAC,2
2416: JRST CHKAC2
2417: LDB TAC,[POINT 3,AC2,32]
2418: CAIN TAC,2
2419: JRST CHKAC3
2420: JRST DDCINC
2421:
2422: CHKAC1: LDB TAC,[POINT 8,AC2,7]
2423: CHKAC4: PUSHJ P,CHAD
2424: JRST DDSCHN
2425:
2426: CHKAC2: LDB TAC,[POINT 8,AC2,15]
2427: JRST CHKAC4
2428:
2429: CHKAC3: LDB TAC,[POINT 8,AC2,23]
2430: JRST CHKAC4
2431:
2432:
2433: CHKADR: HLRZ AC3,JBTADR(J)
2434: CAIGE AC3,(AC2)
2435: JRST CHKADU
2436: ADD AC2,JBTADR(J)
2437: POPJ P,
2438:
2439: CHKADU: TRZN AC2,400000
2440: JRST UUOERR
2441: TRZE AC3,400000
2442: SUBI AC2,1(AC3)
2443: LDB AC3,PSEGN
2444: JUMPE AC3,UUOERR
2445: HLRZ AC3,JBTADR(AC3)
2446: CAIGE AC3,(AC2)
2447: JRST UUOERR
2448: LDB AC3,PSEGN
2449: ADD AC2,JBTADR(AC3)
2450: POPJ P,
DPYSER page# 0060 next prev
2452:
2453:
2454:
2455: CHAD: JUMPE TAC,MYCHN
2456: ANDI TAC,37
2457: MOVEI AC1,(TAC)
2458: PUSHJ P,DDCHEK
2459: POPJ P,
2460: JRST .+2
2461: POPJ P,
2462: MOVE AC1,JBTPRV(J)
2463: MOVE AC2,DDTAB(TAC)
2464: TLNN AC2,DDANYW
2465: TLNE AC1,UPGPRV
2466: POPJ P,
2467: MYCHN: HLRE TAC,PRGNUM(DDB)
2468: JUMPGE TAC,CPOPJ
2469: SUB P,[1,,1]
2470: ILLCHN: MOVEI AC1,(DDB)
2471: SKIPE DPRLSF(DDB)
2472: PUSHJ P,FSGIVE
2473: PUSHJ P,TTYFUW
2474: PUSHJ P,INLMES
2475: ASCIZ /ILLEGAL DD CHANNEL.
2476: /
2477: JRST TYPGO
DPYSER page# 0061 next prev
2479:
2480:
2481: ↑PGSET: PUSHJ P,PRGFND
2482: POPJ P,
2483: JUMPL DDB,CPOPJ1
2484: PGSETA: HLRZ ITEM,PGCALL(DDB)
2485: JUMPE ITEM,PGSET1
2486: CAMLE UCHN,LSTPG(DDB)
2487: JRST PGSET2
2488: ADDI ITEM,(UCHN)
2489: JRST CPOPJ1
2490: PGSET1: PUSHJ P,CGETFS
2491: MOVEM AC1,ITEM
2492: SETOM LSTPG(DDB)
2493: HRLI TAC1,PGCALL+1(DDB)
2494: HRRI TAC1,DISJMP
2495: MOVEM TAC1,(ITEM)
2496: HRLI ITEM,DISJMP
2497: MOVSM ITEM,PGCALL(DDB)
2498: PGSET2: MOVEI TAC1,DISNOP
2499: ADD ITEM,LSTPG(DDB)
2500: EXCH UCHN,LSTPG(DDB)
2501: SUB UCHN,LSTPG(DDB)
2502: HRLI ITEM,(UCHN)
2503: MOVE UCHN,1(ITEM)
2504: PGSL1: MOVEM UCHN,2(ITEM)
2505: MOVEM TAC1,1(ITEM)
2506: SETZM SIZE+1(ITEM)
2507: AOBJN ITEM,PGSL1
2508: JRST CPOPJ1
DPYSER page# 0062 next prev
2510:
2511:
2512:
2513: DPYERR: PUSH P,TEM
2514: PUSH P,TAC1
2515: JSA ITEM,ERRP
2516: POINT 7,[ASCIZ/$$ USER DPY ERROR AT /]
2517: HRR AC1,(P)
2518: MOVEI AC2,6
2519: DPYER1: HRRZS AC1
2520: LSH AC1,3
2521: TLO AC1,60
2522: LDB CHR,[POINT 7,AC1,17]
2523: PUSH P,AC1
2524: PUSH P,AC2
2525: MOVE DAT,CURPP(DDB)
2526: HLL DAT,DDB
2527: CONO PI,SCNOFF
2528: PUSHJ P,TYO
2529: CONO PI,SCNON
2530: POP P,AC2
2531: POP P,AC1
2532: SOJG AC2,DPYER1
2533: ERMS {}
2534: POP P,TAC1
2535: POP P,TEM
2536: POPJ P,
DPYSER page# 0063 next prev
2538: ↑↑UPGMVM:PUSHJ P,UPGMV
2539: POPJ P,
2540: TRNN 3
2541: PUSHJ P,SPECOP
2542: MOVSS DAT
2543: MOVEM (DAT)
2544: POPJ P,
2545:
2546: ↑↑UPGMOV:PUSH P,UCHN
2547: PUSHJ P,UPGMV
2548: TDZA DAT,DAT
2549: JRA DAT,.+1
2550: POP P,UCHN
2551: XCTR XW,[MOVEM DAT,(UCHN)]
2552: POPJ P,
2553:
2554: UPGMV: PUSHJ P,PRGFND
2555: POPJ P,
2556: JUMPL DDB,CPOPJ
2557: SKIPE ITEM,CURPG(DDB)
2558: SKIPN SIZE(ITEM)
2559: POPJ P,
2560: XCTR XR,[MOVE DAT,(UCHN)]
2561: MOVS T2,(ITEM)
2562: SUBI T2,PGNP
2563: HRLZ TEM,PGSA(T2)
2564: HRLZ UCHN,PGWC(T2)
2565: HRLZ UUO
2566: MOVE UUO,[XWD TAC,TBL]
2567: HRLZM T2,(UUO)
2568: SKIPE T2,LINK(T2)
2569: AOJA UUO,.-2
2570: HRRI UUO,TBL
2571: HLRZ TAC1,0
2572: PUSHJ P,ADROP
2573: EXCH DAT,0
2574: JRST CPOPJ1
DPYSER page# 0064 next prev
2576: ↑↑PGIOT:
2577: CAIL UCHN,PGMAX
2578: JRST UUOERR
2579: PUSHJ P,DDFND
2580: POPJ P,
2581: JUMPG DDB,@PGDSP(UCHN)
2582: CAIGE UCHN,3
2583: POPJ P,
2584: JRST @PGDSP(UCHN)
2585:
2586:
2587: DEFINE UUOS{FOR X IN(PGSEL,PGACT,PGCLR,DDUPG,PGINFO)}
2588:
2589: UUOMAC PGDSP,PGIOT
2590: PGMAX←←UUOCNT
2591:
2592: PGSEL: HRRZ UCHN,UUO
2593: CAIL UCHN,20
2594: JRST ADRERR
2595: PUSHJ P,PGSETA
2596: POPJ P,
2597: MOVEM ITEM,CURPG(DDB)
2598: POPJ P,
2599:
2600: ↑VPGACT:MOVEI DDB,(DAT)
2601: HLRZ UUO,PRGACT(DDB)
2602: PGACT: HLRZ ITEM,PGCALL(DDB)
2603: JUMPE ITEM,CPOPJ
2604: HRLM UUO,PRGACT(DDB)
2605: MOVE TAC,LSTPG(DDB)
2606: MOVEI AC1,DISNOP
2607: MOVEI AC2,DISJSR
2608: PGACL: SKIPN SIZE(ITEM)
2609: JRST PGAC1
2610: HRRM AC1,(ITEM)
2611: TRNE UUO,400000
2612: HRRM AC2,(ITEM)
2613: PGAC1: ROT UUO,1
2614: SOJL TAC,CPOPJ
2615: AOJA ITEM,PGACL
2616:
2617:
2618:
2619: ↑PGCLR: SETZM CURPG(DDB)
2620: HLRZ ITEM,PGCALL(DDB)
2621: JUMPE ITEM,CPOPJ
2622: PGCLR1: MOVEI TAC1,DISNOP
2623: PUSHJ P,UPREL1
2624: SOSL LSTPG(DDB)
2625: AOJA ITEM,PGCLR1
2626: MOVEI UCHN,DISNOP
2627: EXCH UCHN,PGCALL(DDB)
2628: HLRZ AC1,UCHN
2629: JRST CGIVFS
DPYSER page# 0065 next prev
2631:
2632:
2633:
2634:
2635:
2636: PGINFO: MOVE AC1,PRGACT(DDB)
2637: XCTR XW,[MOVEM AC1,(UUO)]
2638: ADDI UUO,1
2639: HLRZ AC1,PGCALL(DDB)
2640: SETZ AC3,
2641: PGCLP: HLRZ CHR,(AC1)
2642: JUMPE CHR,PGSZ
2643: SUBI CHR,PGNP
2644: HRRZ AC2,PGSA(CHR)
2645: XCTR XRW,[HRRM AC2,(UUO)]
2646: HRRZ AC1,PGWC(CHR)
2647: XCTR XRW,[HRLM AC1,(UUO)]
2648: JRST PGCNT
2649:
2650: PGSZ: XCTR XW,[SETZM (UUO)]
2651: PGCNT: ADDI UUO,1
2652: ADDI AC1,1
2653: ADDI AC3,1
2654: CAIG AC3,LSTPG(DDB)
2655: JRST PGCLP
2656: PGXLP: CAILE AC3,17
2657: POPJ P,
2658: XCTR XW,[SETZM (UUO)]
2659: ADDI AC3,1
2660: AOJA UUO,PGXLP
2661:
2662: BEND UPG
DPYSER page# 0066 next prev
2664:
2665:
2666:
2667: DPYTY1: TRNE DAT,-1⊗PUNITS
2668: JRST DPYTER
2669: SKIPN DDB,TTYTAB(DAT)
2670: POPJ P,
2671: HRRZ TAC1,DAT
2672: ↑DPYERT:
2673: HRRI DAT,TTIBUF(DDB)
2674: HRLI DAT,DPYTY1
2675: JRST DPYTY4
2676:
2677: ↑DPYTYP: HGMAC(34)
2678: TRNE DAT,-1⊗PUNITS
2679: JRST DPYTER
2680: HRLI DAT,DPYTYP
2681: SKIPN DDB,TTYTAB(DAT)
2682: POPJ P,
2683: HRRZ TAC1,DAT
2684: HRRI DAT,TTOBUF(DDB)
2685: DPYTY4: MOVEI DSER,(DDB)
2686: HRRZ DDB,LETAB-DPYL0(TAC1)
2687: JUMPN DDB,DPYTY2
2688: DPYTY5: PUSHJ P,DPYMAKE
2689: JRST DPYTLN
2690: AOS NDPMAK#
2691: HRRZ DDB,LETAB-DPYL0(TAC1)
2692: DPYTY2: MOVNI IOS,12
2693: SKIPE UUO,CURPP(DDB)
2694: JRST DPYTL1
2695: DPYTY6: PUSH P,DAT
2696: HLRE TAC,PRGNUM(DDB)
2697: PUSHJ P,PPINIT
2698: JRST DPYTY3
2699: PUSHJ P,PPSET
2700: HRRZ UUO,CURPP(DDB)
2701: POP P,DAT
2702: JRST DPYTL1
2703:
2704: DPYTY3: POP P,DAT
2705: JRST DPYTLN
DPYSER page# 0067 next prev
2707:
2708:
2709:
2710: DPYTL1: SKIPE PPDD(UUO)
2711: TLO UUO,400000
2712: SKIPE DPHOLD(DDB)
2713: JRST STAR
2714: SKIPE PPENQ(UUO)
2715: POPJ P,
2716: DPYTL2: CONO PI,SCNOFF
2717: DPTL2A: PUSHJ P,GETCHO
2718: JUMPE CHR,DPYTLX
2719:
2720: SKIPL LSTCHR(UUO)
2721: JRST DPTL2B
2722: CAIN CHR,15
2723: JRST DPTL2A
2724: MOVEM CHR,LSTCHR(UUO)
2725: MOVEI CHR,12
2726: EXCH CHR,LSTCHR(UUO)
2727: CAIN CHR,12
2728: JRST DPTL2A
2729:
2730: DPTL2B: PUSH P,CHR
2731: EXCH DAT,UUO
2732: PUSHJ P,TYO
2733: CONO PI,SCNON
2734: EXCH DAT,UUO
2735: POP P,CHR
2736:
2737: SKIPGE LSTCHR(UUO)
2738: MOVEI CHR,12
2739:
2740: CAIN CHR,12
2741: SOSE LHCNT(DDB)
2742: JRST DPYTL3
2743: LDB AC1,HLINES
2744: MOVEM AC1,LHCNT(DDB)
2745: SETOM DPHOLD(DDB)
2746: JRST STAR
2747:
2748: DPYTL3: SKIPE GLTCH(UUO)
2749: SKIPE GLHCNT(DDB)
2750: JRST DPYTL4
2751: LDB AC1,HGLTCH
2752: MOVEM AC1,GLHCNT(DDB)
2753: SETOM DPHOLD(DDB)
2754: JRST STAR
2755:
2756: DPYTL4: JUMPL UUO,DPTDD
2757:
2758: CAIE CHR,12
2759: CAIN CHR,15
2760: JRST DPYTLN
2761:
2762: AOJN IOS,DPYTL2
2763: JRST DPYTLN
DPYSER page# 0068 next prev
2765:
2766:
2767: DPYTER: PUSH P,DAT
2768: PUSHJ P,DISERR
2769: [ASCIZ /ILLEGAL LINE NUMBER AT DPYTYP - /]
2770: DISARG OCT,<-1(P)>
2771: [ASCIZ /
2772: /]
2773: -1
2774: POP P,DAT
2775: POPJ P,
2776:
2777:
2778:
2779: STAR: JUMPG UUO,IISTAR
2780: PUSHJ P,GETQ
2781: PUSH P,AC1
2782: PUSHJ P,GETQ
2783: MOVE AC2,(P)
2784: HRLI UUO,PPSTAR
2785: MOVSM UUO,(AC1)
2786: MOVSM UUO,(AC2)
2787: SETZM QCOUNT(AC1)
2788: SETZM QCOUNT(AC2)
2789: SETZM QFIELD(AC1)
2790: SETOM QFIELD(AC2)
2791: MOVE AC3,[XWD 3,3]
2792: MOVEM AC3,QLINE(AC1)
2793: MOVEM AC3,QLINE(AC2)
2794: PUSHJ P,QBLOCK
2795: POP P,AC1
2796: JRST QBLOCK
2797:
2798: IISTAR: MOVE AC1,PSELB(DDB)
2799: AND AC1,[77B5]
2800: ORM AC1,DPYHLD
2801: LSH AC1,-=12
2802: ANDCAM AC1,DPYHLD
2803: POPJ P,
DPYSER page# 0069 next prev
2805:
2806:
2807: ↑UNHOLD:
2808: HRLI DAT,DPYTYP
2809: TRNE DAT,-1⊗PUNITS
2810: JRST DPYTER
2811: SKIPN DDB,TTYTAB(DAT)
2812: POPJ P,
2813: HRRZ TAC1,DAT
2814: HRRI DAT,TTOBUF(DDB)
2815: MOVEI DSER,(DDB)
2816: HRRZ DDB,LETAB-DPYL0(TAC1)
2817: JUMPE DDB,DPYTY4
2818: SKIPN UUO,CURPP(DDB)
2819: JRST DPYTY6
2820: SKIPE PPDD(UUO)
2821: TLO DDB,400000
2822: HLL UUO,DDB
2823: JUMPG UUO,UNHIII
2824: PUSHJ P,GETQ
2825: PUSH P,AC1
2826: PUSHJ P,GETQ
2827: MOVE AC2,(P)
2828: SETZM QFIELD(AC1)
2829: SETOM QFIELD(AC2)
2830: HRLI UUO,ERASE
2831: MOVSM UUO,(AC1)
2832: MOVSM UUO,(AC2)
2833: SETZM QCOUNT(AC1)
2834: SETZM QCOUNT(AC2)
2835: MOVE AC3,[XWD 3,3]
2836: MOVEM AC3,QLINE(AC1)
2837: MOVEM AC3,QLINE(AC2)
2838: PUSHJ P,QBLOCK
2839: POP P,AC1
2840: PUSHJ P,QBLOCK
2841: HRLI UUO,400000
2842: JRST DPYTL1
2843:
2844: UNHIII: MOVE AC1,PSELB(DDB)
2845: AND AC1,[77B5]
2846: ANDCAM AC1,DPYHLD
2847: LSH AC1,-=12
2848: ORM AC1,DPYHLD
2849: JRST DPYTL1
DPYSER page# 0070 next prev
2851:
2852:
2853: DPTDD: SKIPN GLTCH(UUO)
2854: CAIN CHR,12
2855: JRST DPTDDK
2856: JRST DPYTL2
2857:
2858: DPTDDK: HRRZ AC1,TPJMP(UUO)
2859: CAIN AC1,DISNOP
2860: JRST DPYTL2
2861: JRST QDDR
2862:
2863: DPYTLN: HRR DAT,TAC1
2864: ↑DPYTIM:CONO PI,PIOFF
2865: IDPB DAT,CLKQ
2866: CONO PI,PION
2867: POPJ P,
DPYSER page# 0071 next prev
2869: SUBTTL DATA DISK SERVICE ROUTINE - JAM, DEC. 1970
2870:
2871:
2872:
2873:
2874:
2875:
2876:
2877:
2878:
2879:
2880:
2881:
2882:
2883:
2884:
2885: START←←100
2886: RESET←←10
2887: ENB←←40
2888: LOSENB←←400
2889: DAMMIT←←20
2890: EXECM←←1000
2891: DDNXM←←2000
2892: USUAL←←START!ENB!LOSENB!DAMMIT!APRCHN
2893:
2894:
2895: FIELD←←40
2896: INT←←20
2897: LOSE←←200
2898:
2899:
2900:
2901:
2902:
2903:
2904: QLINE←←1
2905: QFIELD←←2
2906: QHPOS←←3
2907: QLINK←←4
2908: QWAKE←←5
2909: QCOUNT←←6
2910: QTIME←←7
2911: ↑QLENGTH←←10
DPYSER page# 0072 next prev
2913:
2914:
2915:
2916: QDDR: MOVE AC3,VPOS(UUO)
2917: SUBI AC3,1
2918: MOVEM AC3,VP(UUO)
2919: PUSHJ P,GETQ
2920: PUSH P,AC1
2921: PUSHJ P,GETQ
2922: MOVE AC2,(P)
2923: HRR DAT,TAC1
2924: MOVEM DAT,QWAKE(AC1)
2925: MOVEM DAT,QWAKE(AC2)
2926: AOS PPENQ(UUO)
2927: AOS PPENQ(UUO)
2928: MOVEI AC3,PPENQ(UUO)
2929: DOXFR: SETZM PPVIRG(UUO)
2930: MOVEM AC3,SC(UUO)
2931: MOVEM AC3,QCOUNT(AC1)
2932: MOVEM AC3,QCOUNT(AC2)
2933: SETZM QFIELD(AC1)
2934: SETOM QFIELD(AC2)
2935: HRLM UUO,(AC1)
2936: HRLM UUO,(AC2)
2937: MOVEI AC3,PPXFR
2938: HRRM AC3,(AC1)
2939: HRRM AC3,(AC2)
2940: SKIPN GLTCH(UUO)
2941: JRST DPTDL
2942: SETZM GLTCH(UUO)
2943: EXCH DAT,UUO
2944: PUSHJ P,POSLIN
2945: EXCH DAT,UUO
2946: CAML AC3,VPOS(UUO)
2947: JRST NOPAGE
2948: HRLM AC3,QLINE(AC1)
2949: HRLM AC3,QLINE(AC2)
2950: MOVE AC3,VP(UUO)
2951: HRRM AC3,QLINE(AC1)
2952: HRRM AC3,QLINE(AC2)
2953: PUSHJ P,QBLOCK
2954: POP P,AC1
2955: PUSHJ P,QBLOCK
DPYSER page# 0073 next prev
2957:
2958:
2959:
2960:
2961: MOVE AC2,VP(UUO)
2962: MOVEM AC2,LLW(UUO)
2963: CAML AC2,GLW(UUO)
2964: POPJ P,
2965: PUSHJ P,GETQ
2966: PUSH P,AC1
2967: PUSHJ P,GETQ
2968: MOVE AC3,(P)
2969: HRLM UUO,(AC1)
2970: HRLM UUO,(AC3)
2971: MOVEI AC2,ERASE
2972: HRRM AC2,(AC1)
2973: HRRM AC2,(AC3)
2974: MOVEM DAT,QWAKE(AC1)
2975: MOVEM DAT,QWAKE(AC3)
2976: MOVE AC2,SC(UUO)
2977: MOVEM AC2,QCOUNT(AC1)
2978: MOVEM AC2,QCOUNT(AC3)
2979: SETZM QFIELD(AC1)
2980: SETOM QFIELD(AC3)
2981: MOVE AC2,GLW(UUO)
2982: HRRM AC2,QLINE(AC1)
2983: HRRM AC2,QLINE(AC3)
2984: MOVE AC2,VP(UUO)
2985: MOVEM AC2,GLW(UUO)
2986: HRLM AC2,QLINE(AC1)
2987: HRLM AC2,QLINE(AC3)
2988: SKIPN SC(UUO)
2989: JRST QDD1
2990: AOS @SC(UUO)
2991: AOS @SC(UUO)
2992: QDD1: PUSHJ P,QBLOCK
2993: POP P,AC1
2994: JRST QBLOCK
2995:
2996:
2997:
2998: NOPAGE: PUSHJ P,WAKEQ
2999: PUSHJ P,GIVQB
3000: POP P,AC1
3001: PUSHJ P,WAKEQ
3002: JRST GIVQB
DPYSER page# 0074 next prev
3004:
3005:
3006: DPTDL: MOVE AC3,LLW(UUO)
3007: CAMLE AC3,VP(UUO)
3008: MOVE AC3,VP(UUO)
3009: HRLM AC3,QLINE(AC1)
3010: HRLM AC3,QLINE(AC2)
3011: MOVE AC3,VP(UUO)
3012: HRRM AC3,QLINE(AC1)
3013: HRRM AC3,QLINE(AC2)
3014: MOVEM AC3,LLW(UUO)
3015: PUSHJ P,QBLOCK
3016: POP P,AC1
3017: JRST QBLOCK
3018:
3019:
3020:
3021: DPYTLX: JUMPG UUO,DPYDON
3022: SKIPN DPYCHR(UUO)
3023: JRST DPYDON
3024: SETZM DPYCHR(UUO)
3025: MOVN AC1,DPHPOS(UUO)
3026: PUSH P,DAT
3027: HRR DAT,UUO
3028: MOVE AC2,LLW(UUO)
3029: CAMN AC2,VPOS(UUO)
3030: CAME AC1,LNLNGT(UUO)
3031: PUSHJ P,REFLINE
3032: POP P,DAT
3033: HRRZ AC1,HEDPTR(UUO)
3034: MOVSI AC2,DPLED
3035: HRR AC2,AC1
3036: SETO AC3,
3037: EXCH AC3,LECLK(AC1)
3038: JUMPL AC3,DPYDON
3039: CONO PI,PIOFF
3040: IDPB AC2,CLKQ
3041: CONO PI,PION
3042: JRST DPYDON
DPYSER page# 0075 next prev
3044:
3045:
3046: ↑LEERSN:TLCA DAT,LEERSN≠PPNSET
3047: ↑RFPCS: HRLI DAT,LERFP
3048: SKIPE III(DAT)
3049: JRST LEPGC
3050: MOVEI AC2,LEENQ2(DAT)
3051: AOSA LEENQ2(DAT)
3052: ↑LEERS: MOVEI AC2,
3053: SKIPE III(DAT)
3054: JRST LEPGC2
3055: PUSHJ P,GETQ
3056: MOVEM AC2,QCOUNT(AC1)
3057: MOVEM DAT,QWAKE(AC1)
3058: SETOM LECC(DAT)
3059: LEERS3: MOVE AC2,[XWD 1,=40]
3060: MOVEM AC2,QLINE(AC1)
3061: SETZM QFIELD(AC1)
3062: HRLM DAT,(AC1)
3063: MOVEI AC2,WSE
3064: HRRM AC2,(AC1)
3065: SETOM LEVP(DAT)
3066: SETOM LECVP(DAT)
3067: JRST QBLOCK
3068:
3069: LEPGC: HLRZ TAC,DAT
3070: PUSH P,DAT
3071: PUSHJ P,(TAC)
3072: POP P,DAT
3073: LEPGC2: MOVEI DDB,(DAT)
3074: JRST PGCLR
3075:
3076:
3077:
3078:
3079:
3080: ↑REFLINE:
3081: HRRZ AC1,TPJMP(DAT)
3082: CAIN AC1,DISNOP
3083: POPJ P,
3084: PUSHJ P,GETQ
3085: PUSH P,AC1
3086: PUSHJ P,GETQ
3087: MOVE AC2,(P)
3088: MOVE AC3,VPOS(DAT)
3089: MOVEM AC3,VP(DAT)
3090: MOVEI AC3,PPNQT(DAT)
3091: HRRZ UUO,DAT
3092: AOS PPNQT(DAT)
3093: AOS PPNQT(DAT)
3094: SETZM QWAKE(AC1)
3095: SETZB DAT,QWAKE(AC2)
3096: JRST DOXFR
DPYSER page# 0076 next prev
3098:
3099:
3100: ↑LERFP: MOVEI DDB,(DAT)
3101: SKIPE III(DAT)
3102: JRST PPRST
3103: HRRZ UUO,CURPP(DAT)
3104: MOVE AC1,HEDPTR(UUO)
3105: CAIE AC1,(DAT)
3106: JRST PPCLB
3107: HRRZ AC1,TPJMP(UUO)
3108: CAIN AC1,DISNOP
3109: POPJ P,
3110: SKIPE PPENQ(UUO)
3111: JRST LERFP1
3112: SETZM PPVIRG(UUO)
3113: JSP AC3,GET2Q
3114: MOVEI AC3,LEENQ2(DAT)
3115: MOVEM AC3,QCOUNT(AC1)
3116: MOVEM AC3,QCOUNT(AC2)
3117: MOVEI AC3,2
3118: ADDM AC3,LEENQ2(DAT)
3119: HRR AC3,DAT
3120: HRLI AC3,LERELE
3121: MOVEM AC3,QWAKE(AC1)
3122: MOVEM AC3,QWAKE(AC2)
3123: HRLM UUO,(AC1)
3124: HRLM UUO,(AC2)
3125: MOVEI AC3,PPXFR
3126: HRRM AC3,(AC1)
3127: HRRM AC3,(AC2)
3128: EXCH DAT,UUO
3129: PUSHJ P,POSLIN
3130: EXCH DAT,UUO
3131: HRLM AC3,QLINE(AC1)
3132: HRLM AC3,QLINE(AC2)
3133: MOVE AC3,VPOS(UUO)
3134: HRRM AC3,QLINE(AC1)
3135: HRRM AC3,QLINE(AC2)
3136: Q2BLCK: PUSHJ P,QBLOCK
3137: POP P,AC1
3138: JRST QBLOCK
3139:
3140: LERFP1: SETOM GLTCH(UUO)
3141: POPJ P,
3142:
3143: GET2Q:
3144: PUSHJ P,GETQ
3145: PUSH P,AC1
3146: PUSHJ P,GETQ
3147: HRRZ AC2,(P)
3148: SETZM QFIELD(AC1)
3149: SETOM QFIELD(AC2)
3150: JRST @AC3
3151:
3152: LERELE:
3153: EXCH DAT,ITEM
3154: PUSHJ P,QLETXT
3155: EXCH DAT,ITEM
3156: POPJ P,
3157:
3158: PPCLB: PUSHACS
3159: PUSHJ P,DISDAT
3160: PUSHJ P,DISMES
3161: ASCIZ /CURPP CLOBBERED AT LERELE
3162: /
3163: DEBCHE
3164: POPACS
3165: POPJ P,
DPYSER page# 0077 next prev
3167:
3168:
3169:
3170:
3171: ↑DPLED: HGMAC(33)
3172: SKIPE LEENQ(DAT)
3173: POPJ P,
3174: HRRZ UUO,CURPP(DAT)
3175: SKIPE PPENQ(UUO)
3176: JRST DPYTIM
3177: CONO PI,SCNOFF
3178: MOVE AC1,VPOS(UUO)
3179: MOVEM AC1,LELINE(DAT)
3180: MOVE AC1,DPHPOS(UUO)
3181: ADD AC1,LNLNGT(UUO)
3182: MOVEM AC1,PPHPOS(DAT)
3183: SKIPL AC3,LEPOS(DAT)
3184: JRST DPLEVS
3185: LDB AC3,[POINT 11,AC3,21]
3186: TRNE AC3,1⊗=10
3187: OR AC3,[-1⊗=10]
3188: PUSHJ P,POSLI2
3189: MOVEM AC3,LELINE(DAT)
3190: SETZB AC1,PPHPOS(DAT)
3191: DPLEVS: MOVEI AC3,LEENQ(DAT)
3192: MOVEM AC3,SC(UUO)
3193: MOVE AC3,PRGNUM(DAT)
3194: SKIPG J,LETAB(AC3)
3195: JRST DPLGCP
DPYSER page# 0078 next prev
3197:
3198:
3199: DPLGC2: MOVEM AC1,CHP(DAT)
3200: MOVE AC1,LELINE(DAT)
3201: DPLGC1: MOVEM AC1,CVP(DAT)
3202: MOVE AC1,LELINE(DAT)
3203: CAMN AC1,LEVP(DAT)
3204: JRST DPTLE1
3205: PUSHJ P,DPEC
3206: PUSHJ P,DPEOPC
3207: PUSHJ P,DPWT
3208: MOVE AC1,CVP(DAT)
3209: CAMN AC1,LELINE(DAT)
3210: JRST DPTL14
3211: PUSHJ P,DPWC
3212: PUSHJ P,DPWPC
3213: JRST DPTLE5
3214:
3215: DPTL14: PUSHJ P,DPWB
3216: JRST DPTLE5
3217:
3218: DPLGCP: ADD AC1,LEHPOS(DAT)
3219: JUMPE AC1,DPLGC2
3220: IDIV AC1,LNLNGT(UUO)
3221: ADD AC1,LELINE(DAT)
3222: MOVEM AC2,CHP(DAT)
3223: JRST DPLGC1
DPYSER page# 0079 next prev
3225:
3226:
3227:
3228: DPTLE1: JUMPGE J,DPTL1A
3229: MOVE AC1,PPHPOS(DAT)
3230: EXCH AC1,LSTHP(DAT)
3231: CAMN AC1,LSTHP(DAT)
3232: JRST DPTL1A
3233: PUSHJ P,LEFIX
3234: SETOM LETXC(DAT)
3235: DPTL1A: MOVE AC1,NCRS(DAT)
3236: CAMGE AC1,LENCRS(DAT)
3237: PUSHJ P,DPEOSL
3238: MOVE AC1,CVP(DAT)
3239: CAME AC1,LECVP(DAT)
3240: JRST DPTLE2
3241: MOVE AC1,CHP(DAT)
3242: CAME AC1,LECHP(DAT)
3243: JRST DPTLE3
3244: MOVE AC1,PPHPOS(DAT)
3245: CAME AC1,LEHP(DAT)
3246: JRST DPTLE6
3247: SKIPN LETXC(DAT)
3248: SKIPE LEMISS(DAT)
3249: JRST DPTL12
3250: SETZM LECLK(DAT)
3251: CONO PI,SCNON
3252: POPJ P,
DPYSER page# 0080 next prev
3254:
3255:
3256:
3257: DPTLE6: MOVE AC1,CVP(DAT)
3258: CAME AC1,VPOS(UUO)
3259: JRST DPTLE7
3260: DPTLE9: PUSHJ P,DPWB
3261: JRST DPTLE4
3262:
3263: DPTLE7: PUSHJ P,DPWPC
3264: JRST DPTLE4
3265:
3266: DPTLE2: MOVE AC1,LELINE(DAT)
3267: CAME AC1,LECVP(DAT)
3268: PUSHJ P,DPEC
3269: MOVE AC1,LELINE(DAT)
3270: CAMN AC1,CVP(DAT)
3271: JRST DPTLE9
3272: DPTLE8: PUSHJ P,DPWPC
3273: DPTL11: PUSHJ P,DPWC
3274: JRST DPTLE4
3275:
3276: DPTLE3: PUSHJ P,DPEC
3277: MOVE AC1,LELINE(DAT)
3278: CAMN AC1,CVP(DAT)
3279: JRST DPTLE9
3280: PUSHJ P,DPWC
3281: MOVE AC1,PPHPOS(DAT)
3282: CAME AC1,LEHP(DAT)
3283: PUSHJ P,DPWPC
3284: JRST DPTLE4
DPYSER page# 0081 next prev
3286:
3287:
3288: DPTLE4: SKIPN LETXC(DAT)
3289: SKIPE LEMISS(DAT)
3290: DPTL12: PUSHJ P,DPWT
3291: DPTLE5: MOVE AC1,LELINE(DAT)
3292: MOVEM AC1,LEVP(DAT)
3293: MOVE AC1,PPHPOS(DAT)
3294: MOVEM AC1,LEHP(DAT)
3295: MOVE AC1,NCRS(DAT)
3296: MOVEM AC1,LENCRS(DAT)
3297: MOVE AC1,CVP(DAT)
3298: MOVEM AC1,LECVP(DAT)
3299: SETZM LETXC(DAT)
3300: SETZM LEMISS(DAT)
3301: MOVE AC1,CHP(DAT)
3302: MOVEM AC1,LECHP(DAT)
3303: CONO PI,SCNON
3304: POPJ P,
DPYSER page# 0082 next prev
3306:
3307:
3308: DPWT: PUSHJ P,GETQ
3309: PUSH P,AC1
3310: PUSHJ P,GETQ
3311: MOVE AC2,(P)
3312: MOVEI AC3,LEXFR
3313: HRRM AC3,(AC1)
3314: HRRM AC3,(AC2)
3315: MOVE AC3,LELINE(DAT)
3316: HRLM AC3,QLINE(AC1)
3317: HRLM AC3,QLINE(AC2)
3318: HRLM DAT,(AC1)
3319: HRLM DAT,(AC2)
3320: ADD AC3,NCRS(DAT)
3321: DPWT1: HRRM AC3,QLINE(AC1)
3322: HRRM AC3,QLINE(AC2)
3323: SETZM QFIELD(AC1)
3324: SETOM QFIELD(AC2)
3325: HRLI DAT,DPLED
3326: MOVEM DAT,QWAKE(AC1)
3327: MOVEM DAT,QWAKE(AC2)
3328: SKIPN AC3,SC(UUO)
3329: JRST DPWT2
3330: AOS @SC(UUO)
3331: AOS @SC(UUO)
3332: DPWT2: MOVEM AC3,QCOUNT(AC1)
3333: MOVEM AC3,QCOUNT(AC2)
3334: PUSHJ P,QBLOCK
3335: POP P,AC1
3336: JRST QBLOCK
DPYSER page# 0083 next prev
3338:
3339:
3340: DPEOSL: PUSHJ P,GETQ
3341: PUSH P,AC1
3342: PUSHJ P,GETQ
3343: MOVE AC2,(P)
3344: MOVEI AC3,ERASE
3345: HRRM AC3,(AC1)
3346: HRRM AC3,(AC2)
3347: MOVE AC3,LELINE(DAT)
3348: ADD AC3,NCRS(DAT)
3349: ADDI AC3,1
3350: HRLM AC3,QLINE(AC1)
3351: HRLM AC3,QLINE(AC2)
3352: MOVE AC3,LEVP(DAT)
3353: ADD AC3,LENCRS(DAT)
3354: DPEOS1: HRLM UUO,(AC1)
3355: HRLM UUO,(AC2)
3356: JRST DPWT1
DPYSER page# 0084 next prev
3358:
3359:
3360: DPEC: SKIPA AC2,LECVP(DAT)
3361: DPEOPC: MOVE AC2,LEVP(DAT)
3362: JUMPL AC2,CPOPJ
3363: PUSHJ P,GETQ
3364: DPEC1: HRLM AC2,QLINE(AC1)
3365:
3366: HRRM AC2,QLINE(AC1)
3367: SETOM QHPOS(AC1)
3368: DPEC2: SETZM QFIELD(AC1)
3369: HRLI DAT,DPLED
3370: MOVEM DAT,QWAKE(AC1)
3371: MOVE AC3,SC(UUO)
3372: MOVEM AC3,QCOUNT(AC1)
3373: SKIPE SC(UUO)
3374: AOS @SC(UUO)
3375: HRLM UUO,(AC1)
3376: MOVEI AC3,CURSOR
3377: HRRM AC3,(AC1)
3378: JRST QBLOCK
DPYSER page# 0085 next prev
3380:
3381:
3382: DPWPC: PUSHJ P,GETQ
3383: MOVE AC2,LELINE(DAT)
3384: MOVE AC3,PPHPOS(DAT)
3385: DPWPC1: SETOM QHPOS(AC1)
3386: DPWPC2: HRLM AC2,QLINE(AC1)
3387:
3388: HRRM AC2,QLINE(AC1)
3389: HRLM AC3,QHPOS(AC1)
3390: JRST DPEC2
3391:
3392:
3393:
3394: DPWC: PUSHJ P,GETQ
3395: MOVE AC2,CVP(DAT)
3396: MOVE AC3,CHP(DAT)
3397: JRST DPWPC1
3398:
3399:
3400:
3401: DPWB: PUSHJ P,GETQ
3402: MOVE AC2,LELINE(DAT)
3403: MOVE AC3,CHP(DAT)
3404: HRRM AC3,QHPOS(AC1)
3405: MOVE AC3,PPHPOS(DAT)
3406: JRST DPWPC2
DPYSER page# 0086 next prev
3408:
3409:
3410:
3411:
3412:
3413:
3414:
3415:
3416:
3417:
3418:
3419:
3420:
3421:
3422:
3423:
3424:
3425:
3426: QBLOCK: HGMAC(32)
3427: MOVEI AC2,10
3428: MOVEM AC2,QTIME(AC1)
3429: REQBLK: HRRZ AC2,(AC1)
3430: CAIL AC2,PPXFR
3431: CAILE AC2,PPSTAR
3432: JRST QBLERR
3433: HLRZ AC2,(AC1)
3434: CAML AC2,MEMSIZ
3435: CAMLE AC2,RMEMSIZ
3436: JUMPN AC2,QBLERR
3437: SKIPN INTACT(PID)
3438: JRST QBLCLC
3439: HRLI AC1,QBLCLK
3440: CONO PI,PIOFF
3441: IDPB AC1,CLKQ
3442: CONO PI,PION
3443: POPJ P,
DPYSER page# 0087 next prev
3445:
3446:
3447:
3448:
3449: QBLCLK: HRRZ AC1,DAT
3450: QBLCLC: PUSH P,TAC
3451: PUSH P,TAC1
3452: PUSH P,DAT
3453: PUSH P,UCHN
3454: PUSH P,CHR
3455: HLRE DAT,QLINE(AC1)
3456: HRRE UCHN,QLINE(AC1)
3457: JUMPLE UCHN,QOOB
3458: SKIPN DDOFF
3459: CAILE DAT,=40
3460: JRST QOOB
3461: CAIG DAT,(UCHN)
3462: AOJA UCHN,QBLGO
3463: PUSHACS
3464: PUSHJ P,DISERR
3465: [ASCIZ /STARTING LINE LESS THAN FINISHING LINE AT QBLOCK
3466: /]
3467: -1
3468: POPACS
3469: QBLGO: SETZ TAC,
3470: SETO TAC1,
3471: ADDI DAT,1
3472: ADDI UCHN,1
3473: LSH DAT,-1
3474: LSH UCHN,-1
3475: SUBM DAT,UCHN
3476: IFN FTDDSTAT,< ;ONLY IF COUNTING STATISTICS
3477: ADDM UCHN,NDDLCT ;COUNT -(TOTAL NUMBER OF LINES QUEUED)
3478: AOS NDDXCT ;COUNT TOTAL NUMBER OF TRANSFERS QUEUED.
3479: CAML UCHN,[-2]
3480: AOS NDDL1C ;COUNT 1 AND 2 LINE TRANSFERS.
3481: >
3482: ROTC TAC,-1(UCHN)
3483: MOVN UCHN,DAT
3484: ROT TAC,1(UCHN)
DPYSER page# 0088 next prev
3486:
3487:
3488: QBL1: MOVE DAT,QFIELD(AC1)
3489: MOVE AC3,QLINE(AC1)
3490: MOVE AC2,1
3491: MOVEM AC2,DDLFD
3492: SETZB AC2,DDLST
3493: EXCH AC2,DDQUE
3494: JUMPE AC2,QBL3
3495: MOVEM AC2,DDSQ
3496: CNXTFR: CAME DAT,QFIELD(AC2)
3497: JRST QBL4
3498: TDNE TAC,QLINE(AC2)
3499: JRST QBL8
3500: ORM TAC,QLINE(AC2)
3501: QBL6: HRRZ CHR,QLINK(AC2)
3502: JUMPE CHR,QBL7
3503: MOVE AC2,CHR
3504: CAMLE AC3,QLINE(AC2)
3505: JRST QBL6
3506: HRRM AC2,QLINK(AC1)
3507: HLRZ AC3,QLINK(AC2)
3508: HRLM AC3,QLINK(AC1)
3509: HRRM AC1,QLINK(AC3)
3510: HRLM AC1,QLINK(AC2)
3511: JRST QBLXIT
3512:
3513: QBL7: HRRM AC1,QLINK(AC2)
3514: HRLZM AC2,QLINK(AC1)
3515: JRST QBLXIT
DPYSER page# 0089 next prev
3517:
3518:
3519: QOOB: PUSHJ P,WAKEQ
3520: POP P,CHR
3521: POP P,UCHN
3522: POP P,DAT
3523: POP P,TAC1
3524: POP P,TAC
3525: GIVQB: JRST GIVQ
3526:
3527:
3528:
3529:
3530: QBLERR: PUSH P,(AC1)
3531: PUSHJ P,DISERR
3532: [ASCIZ /ILLEGAL TASK AT QBLOCK - /]
3533: DISARG OCT,<-1(P)>
3534: [ASCIZ /
3535: /]
3536: -1
3537: SUB P,[XWD 1,1]
3538: JRST GIVQ
3539:
3540: WAKEQ: SKIPE QCOUNT(AC1)
3541: SOSLE @QCOUNT(AC1)
3542: POPJ P,
3543: SKIPN AC2,QWAKE(AC1)
3544: POPJ P,
3545: TDNE AC2,[-100]
3546: JRST WAKEQ1
3547: SKIPL JBTSTS(AC2)
3548: POPJ P,
3549: MOVNI AC3,RUNQ
3550: MOVEM AC3,JOBQUE(AC2)
3551: MOVEI AC3,QJOB(AC2)
3552: CONO PI,PIOFF
3553: SKIPE (AC3)
3554: JRST .+3
3555: EXCH AC3,QJOB
3556: HRROM AC3,@QJOB
3557: CONO PI,PION
3558: POPJ P,
3559:
3560: WAKEQ1: CONO PI,PIOFF
3561: IDPB AC2,CLKQ
3562: CONO PI,PION
3563: POPJ P,
DPYSER page# 0090 next prev
3565:
3566:
3567: QBL3: PUSHJ P,MAKFRM
3568: MOVEM AC1,DDSQ
3569: JRST QBLXIT
3570:
3571:
3572:
3573:
3574: MAKFRM: PUSH P,AC1
3575: AOS NDDFRM
3576: PUSHJ P,GETQ
3577: SETZM (AC1)
3578: MOVEM TAC,QLINE(AC1)
3579: MOVEM DAT,QFIELD(AC1)
3580: POP P,AC2
3581: HRRZM AC2,QLINK(AC1)
3582: HRLZM AC1,QLINK(AC2)
3583: POPJ P,
3584:
3585:
3586:
3587: QBL4: CAME DAT,DDLFD
3588: SKIPN DDLST
3589: JRST QBL5
3590: PUSH P,AC2
3591: PUSHJ P,MAKFRM
3592: MOVEM AC1,@DDLST
3593: POP P,(AC1)
3594: JRST QBLXIT
DPYSER page# 0091 next prev
3596:
3597:
3598:
3599: QBL8: MOVEM DAT,DDLFD
3600: JRST QBL9
3601:
3602: QBL5: SETCAM DAT,DDLFD
3603: QBL9: HRRZM AC2,DDLST
3604: HRRZ AC2,(AC2)
3605: JUMPN AC2,CNXTFR
3606: PUSHJ P,MAKFRM
3607: HRRZM AC1,@DDLST
3608: QBLXIT: PUSHJ P,DDQCHK
3609: MOVE AC2,DDSQ
3610: MOVEM AC2,DDQUE
3611: AOS NDDQUE
3612: POP P,CHR
3613: POP P,UCHN
3614: POP P,DAT
3615: POP P,TAC1
3616: POP P,TAC
3617: CONO PI,PIOFF
3618: SKIPN DDRUN
3619: SETOM DDSTART
3620: CONO PI,PION
3621: POPJ P,
3622:
3623:
3624: DDQCHK: MOVEI DAT,DDSQ
3625: DDQCH1: SKIPN AC1,(DAT)
3626: POPJ P,
3627: CAMGE AC1,MEMSIZ
3628: JRST DDQCE3
3629: MOVSI CHR,-1
3630: TDNN CHR,(AC1)
3631: TDNE CHR,QLINK(AC1)
3632: JRST DDQCE1
3633:
3634:
3635:
3636: SKIPE CHR,QFIELD(AC1)
3637: AOJN CHR,DDQCE2
3638: HRRZ AC2,QLINK(AC1)
3639: JUMPE AC2,DDQCH4
3640: CAMGE AC2,MEMSIZ
3641: JRST DDQCE3
3642: PUSHJ P,DDTSCH
3643: DDQCH4: MOVE DAT,AC1
3644: JRST DDQCH1
3645:
3646: DDQCE3: JSP CHR,DDCHER
3647: PUSHJ P,DISMES
3648: ASCIZ /FRAME BLOCK OR TASK BLOCK ADDRESS OUT OF BOUNDS /
3649: JRST DDCKR1
3650:
3651: DDQCE2: JSP CHR,DDCHER
3652: PUSHJ P,DISMES
3653: ASCIZ /QFIELD NOT ZERO OR ONE /
3654: JRST DDCKR1
3655:
3656: DDQCE1: JSP CHR,DDCHER
3657: PUSHJ P,DISMES
3658: ASCIZ /EXTRANEOUS BITS ON /
3659: DDCKR1: PUSHJ P,DISMES
3660: ASCIZ /IN FRAME BLOCK AT /
3661: MOVE TAC,-17+AC1(P)
3662: PUSHJ P,DISLOC
3663: PUSHJ P,DISMES
3664: ASCIZ /
3665: PREVIOUS FRAME BLOCK AT /
3666: MOVE TAC,-17+DAT(P)
3667: PUSHJ P,DISLOC
3668: DDCKR3: PUSHJ P,DISMES
3669: ASCIZ /
3670: FIND A WIZARD OR TYPE POPJ 3,$X
3671: /
3672: PUSHJ P,DISFLUSH
3673: POPACS
3674: PUSHJ P,DDTCALL
3675: JRST DDQCH4
3676:
3677: DDCHER: PUSHACS
3678: PUSHJ P,DISMES
3679: ASCIZ /DATA DISK QUEUE INCONSISTENT
3680: /
3681: JRST @-17+CHR(P)
3682:
3683:
3684: DDTSCH: PUSH P,AC1
3685: DDTSC2: HRRZ CHR,(AC2)
3686: CAIL CHR,DWPINI
3687: CAIL CHR,WHOINI
3688: JRST DDTSE4
3689: SKIPE CHR,QFIELD(AC2)
3690: AOJN CHR,DDTSE1
3691: HLRZ CHR,QLINK(AC2)
3692: CAIE CHR,(AC1)
3693: JRST DDTSE2
3694: HRRZ AC1,AC2
3695: HRRZ AC2,QLINK(AC2)
3696: JUMPE AC2,DDTSC1
3697: CAMGE AC2,MEMSIZ
3698: JRST DDTSE3
3699: JRST DDTSC2
3700:
3701: DDTSC1: POP P,AC1
3702: POPJ P,
3703:
3704: DDTSE4: JSP CHR,DDCHER
3705: PUSHJ P,DISMES
3706: ASCIZ /TASK ROUTINE ADDRESS OUT OF RANGE /
3707: JRST DDCKR2
3708:
3709: DDTSE3: JSP CHR,DDCHER
3710: PUSHJ P,DISMES
3711: ASCIZ /FORWARD LINK OUT OF BOUNDS /
3712: JRST DDCKR2
3713:
3714: DDTSE2: JSP CHR,DDCHER
3715: PUSHJ P,DISMES
3716: ASCIZ /BACKWARS LINK WRONG /
3717: JRST DDCKR2
3718:
3719: DDTSE1: JSP CHR,DDCHER
3720: PUSHJ P,DISMES
3721: ASCIZ /QFIELD NOT ZERO OR ONE /
3722: DDCKR2: PUSHJ P,DISMES
3723: ASCIZ /IN TASK BLOCK AT /
3724: MOVE TAC,-17+AC2(P)
3725: PUSHJ P,DISLOC
3726: PUSHJ P,DISMES
3727: ASCIZ /
3728: PREVIOUS TASK BLOCK (MAYBE FRAME BLOCK) AT /
3729: MOVE TAC,-17+AC1(P)
3730: PUSHJ P,DISLOC
3731: JRST DDCKR3
DPYSER page# 0092 next prev
3733:
3734:
3735:
3736: ↑DDSTRT:
3737: SETZM DDSTART
3738: SKIPN DDQUE
3739: JRST APRADD
3740: SETOM DDRUN
3741: MOVEM TAC,DDSTAC
3742: MOVEM AC1,DDSAC1
3743: MOVEM AC2,DDSAC2
3744: MOVEM AC3,DDSAC3
3745: MOVEM DAT,DDSDAT
3746: EXCH P,APRPDL(PID)
3747: MOVEI AC3,APRADD
3748: MOVEM AC3,DDRET
3749: MOVE AC1,DDQUE
3750: NEWFRM: MOVE AC2,(AC1)
3751: MOVEM AC2,DDQUE
3752: MOVEM AC1,DDCURQ
3753: HRRZ TAC,QLINK(AC1)
3754: SCNLOP: HRRZ AC2,QLINK(TAC)
3755: MOVEM AC2,DDNXT
3756: HLRZ DAT,(TAC)
3757: HRRZ AC3,(TAC)
3758: CAIL AC3,DWPINI
3759: CAIL AC3,WHOINI
3760: CAIA
3761: JRST (AC3)
3762: PUSH P,CHR
3763: MOVEI DAT,DDCURQ
3764: PUSHJ P,DDQCH1
3765: PUSHJ P,DDTCALL
3766: JRST AUTOLOAD
DPYSER page# 0093 next prev
3768:
3769:
3770: RESCAN: SKIPE TAC,DDNXT
3771: JRST SCNLOP
3772: HRRZ AC1,DDCURQ
3773: HRRZ AC2,QLINK(AC1)
3774: JUMPE AC2,DDEXIT
3775: HRLI AC2,DDREQ
3776: CONO PI,PIOFF
3777: IDPB AC2,CLKQ
3778: CONO PI,PION
3779: DDEXIT: PUSHJ P,GIVQ
3780: SKIPE AC1,DDQUE
3781: JRST NEWFRM
3782: SETZM DDRUN
3783: CONO DDD,RESET
3784: MOVE TAC,DDSTAC
3785: MOVE AC1,DDSAC1
3786: MOVE AC2,DDSAC2
3787: MOVE AC3,DDSAC3
3788: MOVE DAT,DDSDAT
3789: EXCH P,APRPDL(PID)
3790: JSR DDRTN
DPYSER page# 0094 next prev
3792:
3793:
3794:
3795:
3796: DDREQ: HRRZ AC1,DAT
3797: DDREQ1: HRRZ DAT,QLINK(AC1)
3798: SOSG QTIME(AC1)
3799: JRST DDREQ2
3800: PUSHJ P,REQBLK
3801: DDREQ3: JUMPE DAT,CPOPJ
3802: MOVE AC1,DAT
3803: JRST DDREQ1
3804:
3805: DDREQ2: MOVE TAC,AC1
3806: PUSHJ P,DEQWAK
3807: JRST DDREQ3
DPYSER page# 0095 next prev
3809:
3810:
3811:
3812: DEQ:
3813:
3814: MOVE AC2,QLINK(TAC)
3815: TRNE AC2,-1
3816: HLLM AC2,QLINK(AC2)
3817: MOVSS AC2
3818: TRNE AC2,-1
3819: HLRM AC2,QLINK(AC2)
3820: DEQWAK: SKIPE QCOUNT(TAC)
3821: SOSLE @QCOUNT(TAC)
3822: JRST DEQ1
3823: SKIPN AC1,QWAKE(TAC)
3824: JRST DEQ1
3825: TDNE AC1,[-100]
3826: JRST DEQ2
3827: SKIPL JBTSTS(AC1)
3828: JRST DEQ1
3829: HLRZ AC2,(TAC)
3830: HRRE AC2,PRGJMP(AC2)
3831: JUMPGE AC2,DEQ1
3832: MOVNI AC2,RUNQ
3833: MOVEM AC2,JOBQUE(AC1)
3834: MOVEI AC1,QJOB(AC1)
3835: CONO PI,PIOFF
3836: SKIPE (AC1)
3837: JRST .+3
3838: EXCH AC1,QJOB
3839: HRROM AC1,@QJOB
3840: CONO PI,PION
3841: JRST DEQ1
3842:
3843: DEQ2: CONO PI,PIOFF
3844: IDPB AC1,CLKQ
3845: CONO PI,PION
3846: DEQ1: MOVE AC1,TAC
3847: GIVQ: PUSHJ P,SFSGIV
3848: DDFS
3849: POPJ P,
DPYSER page# 0096 next prev
3851:
3852:
3853: PPXFR: SKIPL AC1,HEDPTR(DAT)
3854: CAML AC1,RMEMSI
3855: JRST ILLPP
3856: HLRZ AC1,PRGNUM(AC1)
3857: LDB AC3,[241000,,DDCW(DAT)]
3858: CAIE AC1,(AC3)
3859: JRST ILLPP
3860: SETZM DDSAV(DAT)
3861: SKIPE PPINV(DAT)
3862: JRST PPXFR2
3863: PUSHJ P,POSLIN
3864: HLRE AC1,QLINE(TAC)
3865: CAMG AC1,VPOS(DAT)
3866: CAMGE AC1,AC3
3867: JRST PPXFR2
3868: HRRE AC1,QLINE(TAC)
3869: CAMG AC1,VPOS(DAT)
3870: CAMGE AC1,AC3
3871: JRST PPXFR2
3872: HLRE AC3,QLINE(TAC)
3873: SKIPG AC3
3874: MOVEI AC3,1
3875: MOVEI AC1,-1(AC3)
3876: PUSHJ P,GLNADR
3877: ADD AC2,[XWD DISJMP,1]
3878: MOVSM AC2,DDCW+2(DAT)
3879: IMULI AC1,=12
3880: SKIPE QFIELD(TAC)
3881: ORI AC1,1
3882: DPB AC1,[POINT 4,DDCW+1(DAT),23]
3883: LSH AC1,-4
3884: DPB AC1,[POINT 5,DDCW+1(DAT),15]
3885: HRRE AC3,QLINE(TAC)
3886: CAILE AC3,=40
3887: MOVEI AC3,=40
3888: CAMN AC3,VPOS(DAT)
3889: JRST PPXFR4
3890: ADDI AC3,1
3891: PUSHJ P,GLNADR
3892: MOVE AC1,(AC2)
3893: MOVEM AC2,DDSPT(DAT)
3894: MOVEM AC1,DDSAV(DAT)
3895: MOVSI AC1,DDSAV(DAT)
3896: HRRI AC1,DISJMP
3897: MOVEM AC1,(AC2)
DPYSER page# 0097 next prev
3899: PPXFR3: MOVEI AC1,DDCW(DAT)
3900: CONO DDD,USUAL
3901: DATAO DDD,AC1
3902: PUSHJ P,ISYNC
3903: JFCL
3904: JRST PPXFR1
3905: PPXFR2: PUSHJ P,DEQ
3906: PPXFR1: MOVSI AC1,040000
3907: ANDCAM AC1,DDCW(DAT)
3908: SKIPE AC1,DDSAV(DAT)
3909: MOVEM AC1,@DDSPT(DAT)
3910: JRST RESCAN
3911:
3912: PPXFR4: MOVSI AC1,040000
3913: CAMN AC2,VPOS(DAT)
3914: ORM AC1,DDCW(DAT)
3915: JRST PPXFR3
3916:
3917: ILLPP: PUSHACS
3918: PUSHJ P,DISDAT
3919: PUSHJ P,DISMES
3920: ASCIZ /ILLEGAL PP AT PPXFR
3921: /
3922: DEBCHE
3923: POPACS
3924: PUSHJ P,DEQ
3925: JRST RESCAN
DPYSER page# 0098 next prev
3927:
3928:
3929: ERASE: HLRE AC2,QLINE(TAC)
3930: SKIPG AC2
3931: MOVEI AC1,1
3932: MOVEI AC1,-1(AC2)
3933: IMULI AC1,=12
3934: SKIPE QFIELD(TAC)
3935: ORI AC1,1
3936: DPB AC1,[POINT 4,DDERRS+1,23]
3937: LSH AC1,-4
3938: DPB AC1,[POINT 5,DDERRS+1,15]
3939: MOVE AC1,DDCW(DAT)
3940: MOVEM AC1,DDERRS
3941: HRRE AC1,QLINE(TAC)
3942: CAILE AC1,=40
3943: MOVEI AC1,=40
3944: SUB AC2,AC1
3945: ADD AC2,[XWD DISJMP,DDCRLF+=39]
3946: MOVSM AC2,DDERRS+2
3947: CONO DDD,USUAL
3948: DATAO DDD,[DDERRS]
3949: CWAIT: PUSHJ P,ISYNC
3950: JFCL
3951: JRST RESCAN
3952: PUSHJ P,DEQ
3953: JRST RESCAN
DPYSER page# 0099 next prev
3955:
3956:
3957: CURSOR: MOVE AC1,[POINT 36,CURZWD-1,35]
3958: MOVEM AC1,CZPNT
3959: MOVE AC1,DDCW(DAT)
3960: TLO AC1,002000
3961: MOVEM AC1,DDCURS
3962: HLRE AC1,QLINE(TAC)
3963: JUMPLE AC1,CDX
3964: CAILE AC1,=40
3965: JRST CDX
3966: IMULI AC1,=12
3967: SUBI AC1,2
3968: DPB AC1,[POINT 4,DDCURS+1,23]
3969: LSH AC1,-4
3970: DPB AC1,[POINT 5,DDCURS+1,15]
3971: HLRE AC1,QHPOS(TAC)
3972: SKIPL AC1
3973: PUSHJ P,CMAKE
3974: HRRE AC1,QHPOS(TAC)
3975: SKIPL AC1
3976: PUSHJ P,CMAKE
3977: CONO DDD,USUAL
3978: DATAO DDD,[DDCURS]
3979: PUSHJ P,ISYNC
3980: JFCL
3981: JRST CURS2
3982: CDX: PUSHJ P,DEQ
3983: CURS2: HRRZ AC1,CZPNT
3984: MOVEI AC2,2
3985: CURS1: CAIGE AC1,CURZWD
3986: JRST RESCAN
3987: MOVEM AC2,@(AC1)
3988: SOJA AC1,CURS1
DPYSER page# 0100 next prev
3990:
3991:
3992: CMAKE: IMULI AC1,6
3993: ADDI AC1,1
3994: LDB AC2,[POINT 5,AC1,35]
3995: LSH AC1,-5
3996: ADDI AC1,DDCURS+2
3997: IDPB AC1,CZPNT
3998: MOVSI AC3,360000
3999: MOVNS AC2
4000: LSH AC3,(AC2)
4001: ANDCMI AC3,17
4002: ORM AC3,(AC1)
4003: CAMLE AC2,[-=28]
4004: POPJ P,
4005: ADDI AC1,1
4006: IDPB AC1,CZPNT
4007: MOVSI AC3,360000
4008: LSH AC3,=32(AC2)
4009: ORM AC3,(AC1)
4010: POPJ P,
DPYSER page# 0101 next prev
4012:
4013:
4014: LEXFR: HRRZ AC1,CURPP(DAT)
4015: SKIPE PPNQT(AC1)
4016: JRST LEXFR2
4017: SKIPN PPENQ(AC1)
4018: SKIPE LEINV(DAT)
4019: JRST LEXFR2
4020: HLRE AC1,QLINE(TAC)
4021: JUMPLE AC1,LEXFR1
4022: SUBI AC1,1
4023: IMULI AC1,=12
4024: SKIPE QFIELD(TAC)
4025: ORI AC1,1
4026: DPB AC1,[POINT 4,LEBFR+1,23]
4027: LSH AC1,-4
4028: DPB AC1,[POINT 5,LEBFR+1,15]
4029: MOVE AC1,FCPOS(DAT)
4030: MOVE AC2,PRGNUM(DAT)
4031: SKIPL LETAB(AC2)
4032: SETZ AC1,
4033: JUMPN AC1,LEXFR3
4034: MOVE AC1,[ASCID /
4035: /]
4036: MOVEM AC1,LEBFR+2
4037: LEXFR4: MOVE AC1,CURPP(DAT)
4038: MOVE AC2,DDCW(AC1)
4039: MOVEM AC2,LEBFR
4040: MOVEI AC2,2
4041: SKIPGE LEPOS(DAT)
4042: JRST .+3
4043: ADD AC2,DPHPOS(AC1)
4044: ADD AC2,LNLNGT(AC1)
4045: DPB AC2,[POINT 8,LEBFR+1,7]
4046: CONO DDD,USUAL
4047: DATAO DDD,[LEBFR]
4048: PUSHJ P,ISYNC
4049: JRST RESCAN
4050: JRST RESCAN
4051: JRST LEXFR1
DPYSER page# 0102 next prev
4053:
4054:
4055: LEXFR2: SETOM LEMISS(DAT)
4056: LEXFR1: PUSHJ P,DEQ
4057: HRRZ AC2,CURPP(DAT)
4058: HRRZ AC3,LLW(AC2)
4059: CAME AC3,VPOS(AC2)
4060: SKIPE PPENQ(AC2)
4061: JRST RESCAN
4062: HRLI AC2,REFLINE
4063: CONO PI,PIOFF
4064: IDPB AC2,CLKQ
4065: CONO PI,PION
4066: JRST RESCAN
4067:
4068: LEXFR3: MOVEI AC1,LEBUF(DAT)
4069: HRLI AC1,DISJMP
4070: MOVSM AC1,LEBFR+2
4071: JRST LEXFR4
DPYSER page# 0103 next prev
4073:
4074:
4075: WSE: MOVE AC1,CURPP(DAT)
4076: MOVE AC2,DDCW(AC1)
4077: MOVEI AC3,13
4078: MOVEM AC2,WSERC+1
4079: TLNE AC2,(1B5)
4080: ORI AC3,4
4081: DPB AC3,[POINT 8,AC2,7]
4082: MOVEM AC2,WSERC
4083: CONO DDD,USUAL
4084: DATAO DDD,[WSERC]
4085: JRST CWAIT
4086:
4087:
4088:
4089:
4090: WHOWRT:
4091: MOVE AC1,QHPOS(TAC)
4092: CAIE AC1,DDAVLU
4093: JRST WHOWR2
4094: MOVEI DAT,AVLWHO
4095: MOVE AC1,AVLVP
4096: JRST WHOWR3
4097: WHOWR2: SKIPN FRETAB(AC1)
4098: JRST WHOWR1
4099: MOVE AC1,[CW 3,2,4,0,5,0]
4100: WHOWR3: SKIPE QFIELD(TAC)
4101: ORI AC1,1B23
4102: MOVEM AC1,1(DAT)
4103: MOVEI AC1,3(DAT)
4104: HRLM AC1,DDDRET
4105: CONO DDD,USUAL
4106: DATAO DDD,DAT
4107: PUSHJ P,ISYNC
4108: JFCL
4109: JFCL
4110: MOVE AC1,QHPOS(TAC)
4111: CAIE AC1,DDAVLU
4112: JRST WHOWR1
4113: HRLZI AC2,20000
4114: ANDCAM AC2,(DAT)
4115: WHOWR1: PUSHJ P,DEQ
4116: AOS WHOPTR
4117: JRST RESCAN
DPYSER page# 0104 next prev
4119:
4120:
4121: POG: HLRZ AC1,QHPOS(TAC)
4122: JUMPE AC1,POG2
4123: HRLI AC1,140100
4124: MOVE AC2,QFIELD(TAC)
4125: DPB AC2,AC1
4126: POG2: CONO DDD,USUAL!EXECM
4127: MOVEI AC1,PRGCW(DAT)
4128: DATAO DDD,AC1
4129:
4130:
4131:
4132: PUSHJ P,ISYNC
4133: JFCL
4134: JFCL
4135: HRRZ AC1,QHPOS(TAC)
4136: JUMPE AC1,.+2
4137: SOS (AC1)
4138: MOVE AC1,QWAKE(TAC)
4139: SOS JBTGLU(AC1)
4140: IFN FTSTAT,<
4141: PUSH P,J
4142: MOVE J,AC1
4143: PUSHJ P,GLUSTT
4144: POP P,J
4145: >
4146: SKIPN DPRLSF(DAT)
4147: JRST POG1
4148: HRRZI AC1,(DAT)
4149: HRLI AC1,POGCLK
4150: CONO PI,PIOFF
4151: IDPB AC1,CLKQ
4152: CONO PI,PION
4153: POG1: PUSHJ P,DEQ
4154: JRST RESCAN
4155:
4156: POGCLK: HRRZ AC1,DAT
4157: JRST FSGIVE
4158:
4159:
4160:
4161: PPSTAR: MOVE AC1,DDCW(DAT)
4162: MOVEM AC1,DDSTRS
4163: SETZ AC1,
4164: SKIPE QFIELD(TAC)
4165: MOVEI AC1,1
4166: DPB AC1,[POINT 1,DDSTRS+1,23]
4167: CONO DDD,USUAL
4168: DATAO DDD,[DDSTRS]
4169: JRST CWAIT
DPYSER page# 0105 next prev
4171:
4172:
4173: ISYNC: POP P,DDDSP
4174: MOVEI AC3,6
4175: MOVEM AC3,DDCNT
4176: MOVEM DAT,DDCUR
4177: MOVEM TAC,DDCURT
4178: MOVE DAT,DDSDAT
4179: MOVE AC1,DDSAC1
4180: MOVE AC2,DDSAC2
4181: MOVE AC3,DDSAC3
4182: MOVE TAC,DDSTAC
4183: EXCH P,APRPDL(PID)
4184: JSR DDRTN
4185:
4186: ↑DDINT: SKIPN DDRUN
4187: JRST DDILL
4188: MOVEM AC3,DDSAC3
4189: MOVEI AC3,DDIXIT
4190: MOVEM AC3,DDRET
4191: MOVE AC3,DDDSP
4192: EXCH PID,APRID+P1PID
4193: CONSZ 510,DDNXM
4194: JRST DDNX
4195: CONSO 510,LOSE
4196: JRST DDINT1
4197: DDINT2: CONO 510,RESET
4198: JRST DDCMR
DPYSER page# 0106 next prev
4200:
4201:
4202: DDNX: EXCH P,APRPDL(PID)
4203: PUSHACS
4204: PUSHJ P,DISDATE
4205: PUSHJ P,DISERR
4206: [ASCIZ /DATA DISC NON-EX MEM
4207: /]
4208: -1
4209: POPACS
4210: EXCH P,APRPDL(PID)
4211: JRST DDINT2
4212:
4213:
4214: DDINT1: ADDI AC3,2
4215: DDCMR: MOVEM DAT,DDSDAT
4216: MOVEM TAC,DDSTAC
4217: MOVEM AC1,DDSAC1
4218: MOVEM AC2,DDSAC2
4219: EXCH P,APRPDL(PID)
4220: MOVE DAT,DDCUR
4221: MOVE TAC,DDCURT
4222: HRLOI AC2,377777
4223: MOVEM AC2,DDCNT
4224: JRST (AC3)
4225:
4226: ↑DDCLK: MOVEM AC3,DDSAC3
4227: MOVEI AC3,APRADD
4228: MOVEM AC3,DDRET
4229: MOVE AC3,DDDSP
4230: ADDI AC3,1
4231: CONO 510,RESET
4232: JRST DDCMR
4233:
4234: DDIXIT: EXCH PID,APRID+P1PID
4235: JEN @CH3
DPYSER page# 0107 next prev
4237:
4238:
4239:
4240: DDILL: EXCH P,APRPDL+P1PID
4241: PUSHACS
4242: PUSHJ P,DISMES
4243: ASCIZ/
4244: UNEXPECTED DATA DISC INTERRUPT!!!
4245: /
4246: CONO 510,RESET
4247: POPACS
4248: EXCH P,APRPDL+P1PID
4249: JEN @CH3
DPYSER page# 0108 next prev
4251:
4252:
4253: DDLNK←←<600,,DDTAB>
4254: DDALST←←<60600,,DDTAB>
4255: ↑DDUSR←←<221000,,DDTAB>
4256: DDELNK←←40
4257: DDCLST←←<600,,JB2SWP>
4258:
4259: DDGBIT←←100
4260: DDSBIT←←200
4261: DDGMOD←←50300
4262: ↑DDANYW←←200000
4263: DDSMSK←←600000
4264: DDUSR2←←222000
4265:
4266:
4267:
4268: ↑DDAVLU←←200
4269: ↑DDDETU←←201
4270:
4271:
4272:
4273: VDOP←←330300
4274: VDPERM←←400000
4275: VDXBIT←←400
DPYSER page# 0109 next prev
4277:
4278: DDINI: SETOM DDTAB
4279: MOVE TAC,[DDTAB,,DDTAB+1]
4280: BLT TAC,DDTAB+DDELNK
4281: MOVE TAC,[440600,,DDLIST]
4282: MOVEI AC2,DDELNK
4283: DDINI1: ILDB AC1,TAC
4284: SKIPL DDTAB(AC1)
4285: JRST 4,.
4286: MOVEM AC2,DDTAB(AC1)
4287: DPB AC1,[DDALST(AC2)]
4288: MOVEI AC2,(AC1)
4289: CAIE AC1,DDELNK
4290: JRST DDINI1
4291: MOVEI J,JOBN-1
4292: MOVEI TAC,
4293: DPB TAC,[DDCLST(J)]
4294: SOJG J,.-1
4295: MOVEI TAC,40
4296: MOVEM TAC,DDFCNT
4297: MOVSI TAC,200
4298: HRR TAC,AVLCHN
4299: PUSHJ P,DDCGET
4300: JRST 4,.
4301: MOVEI AC1,(TAC)
4302: PUSHJ P,VDBIT
4303: MOVEM AC3,AVLBIT
4304: MOVSI AC1,-DDNUM
4305: DDINI2: MOVEM AC3,VDMAP(AC1)
4306: CONO VDS,DPYNUM(AC1)
4307: DATAO VDS,AC3
4308: AOBJN AC1,DDINI2
4309: DPB TAC,[POINT 8,AVLWHO,15]
4310: PUSHJ P,WHOSYS
4311: SETOM WHOKLU
4312: POPJ P,
4313: ↑DDAVST:
4314: MOVEI AC2,1
4315: SKIPN DDFCNT
4316: MOVE AC2,[DDUNMS,,DISJMP]
4317: SKIPN MAINTMODE
4318: SKIPE TTYLOK
4319: MOVE AC2,[XWD DDDMES,DISJMP]
4320: MOVEM AC2,DDWMES
4321:
4322: DATAI DSK,AC1
4323: ADD AC1,TIME
4324: IDIVI AC1,300
4325: ADDI AC2,10
4326: MOVEI AC1,(AC2)
4327: DPB AC2,[150300,,AVLVP]
4328: LSH AC2,-3
4329: DPB AC2,[240500,,AVLVP]
4330: IDIVI AC1,=12
4331: HRLI AC1,3(AC1)
4332: MOVSM AC1,AVLLN
4333: HRLZI AC2,20000
4334: IORM AC2,AVLWHO
4335: POPJ P,
4336:
4337: DDLIST: BYTE (6)37,36,35,34,33,32,31,30,27,25,24,23,7,22,11,12,26,5
4338: BYTE (6)13,17,2,14,10,1,20,21,16,15,6,4,3,0,DDELNK
4339:
4340: ↑VDSYNC:0↔11↔12↔13↔14↔15↔6↔7
DPYSER page# 0110 next prev
4342:
4343:
4344:
4345:
4346:
4347:
4348:
4349:
4350: ↑DDCHAN:DPB J,[DDUSR2,,TAC]
4351: LDB AC1,[DDGMOD,,TAC]
4352: ANDCMI TAC,-40
4353: PUSHJ P,@DDCDSP(AC1)
4354: JRST STOTAC
4355: AOS (P)
4356: JRST STOTAC
4357:
4358: DDCDSP: DDCREL
4359: DDAREL
4360: DDCGET
4361: DDAGET
4362: DDSGET
4363: DDCSGT
4364: DDSSET
4365: DDCSST
4366:
4367:
4368:
4369: ↑DDAREL:PUSH P,TAC
4370: LDB TAC,[DDCLST(J)]
4371: SOJL TAC,TPOPJ
4372: HLL TAC,(P)
4373: MOVEI AC1,
4374: DPB AC1,[DDCLST(J)]
4375: DDARL1: LDB AC3,[DDLNK(TAC)]
4376: PUSHJ P,DDREL
4377: HRRI TAC,(AC3)
4378: CAIE AC3,DDELNK
4379: JRST DDARL1
4380: JRST TPOPJ
DPYSER page# 0111 next prev
4382:
4383:
4384: DDCREL: LDB AC2,[DDLNK(TAC)]
4385: LDB AC1,[DDCLST(J)]
4386: CAIN AC1,1(TAC)
4387: AOJA AC2,[CAIL AC2,41
4388: MOVEI AC2,
4389: DPB AC2,[DDCLST(J)]
4390: JRST DDREL]
4391: SOJL AC1,DDREL
4392: DDCRL1: LDB AC3,[DDLNK(AC1)]
4393: CAIN AC3,(TAC)
4394: JRST [DPB AC2,[DDLNK(AC1)]↔JRST DDREL]
4395: MOVEI AC1,(AC3)
4396: CAIE AC1,DDELNK
4397: JRST DDCRL1
4398: ↑DDREL: LDB AC1,[DDUSR(TAC)]
4399: TSC AC1,TAC
4400: TRNE AC1,377
4401: JRST DDREL2
4402: MOVEI AC1,(TAC)
4403: AOS AC2,DDFCNT
4404: CAIN AC2,1
4405: SETOM WHOKLU
4406: MOVSI AC2,377
4407: CONO PI,SCNOFF
4408: LDB AC1,[DDALST(AC1)]
4409: TDNE AC2,DDTAB(AC1)
4410: JRST .-2
4411: LDB AC2,[DDLNK(AC1)]
4412: DPB TAC,[DDLNK(AC1)]
4413: DPB AC2,[DDLNK(TAC)]
4414: HRRZS DDTAB(TAC)
4415: ↑SCNONJ:CONO PI,SCNON
4416: POPJ P,
4417:
4418: DDREL2: TLNN TAC,300
4419: POPJ P,
4420: PUSHACS
4421: PUSHJ P,DISERR
4422: [ASCIZ /ILLEGAL DD RELEASE - TAC=/]
4423: DISARG OCT,<TAC-20(P)>
4424: [ASCIZ /
4425: /]
4426: -1
4427: POPACS
4428: POPJ P,
DPYSER page# 0112 next prev
4430:
4431:
4432: ↑DDCGET:HLLZ AC3,TAC
4433: MOVEI AC1,(TAC)
4434: MOVSI AC2,377
4435: CONO PI,SCNOFF
4436: TDNN AC2,DDTAB(AC1)
4437: JRST DDCG1
4438: CONO PI,SCNON
4439: HLL TAC,DDTAB(AC1)
4440: POPJ P,
4441:
4442: DDCG1: LDB AC1,[DDALST(AC1)]
4443: TDNE AC2,DDTAB(AC1)
4444: JRST DDCG1
4445: IORM AC3,DDTAB(TAC)
4446: LDB AC3,[DDLNK(TAC)]
4447: DPB AC3,[DDLNK(AC1)]
4448: CONO PI,SCNON
4449: MOVEI AC1,(TAC)
4450: JRST DDGET2
4451:
4452:
4453:
4454: DDAGET: HLLZ AC3,TAC
4455: CONO PI,SCNOFF
4456: MOVE AC1,DDFLST
4457: CAIN AC1,DDELNK
4458: JRST SCNONJ
4459: LDB AC2,[DDLNK(AC1)]
4460: MOVEM AC2,DDFLST
4461: IORM AC3,DDTAB(AC1)
4462: CONO PI,SCNON
4463: HRRI TAC,(AC1)
4464:
4465:
4466: DDGET2: SOSG DDFCNT
4467: SETOM WHOKLU
4468: TLNN TAC,300
4469: AOJA AC1,[LDB AC2,[DDCLST(J)]
4470: DPB AC1,[DDCLST(J)]
4471: SOJGE AC2,[SOJA AC1,DDGET3]
4472: SOJA AC1,.+1]
4473: MOVEI AC2,DDELNK
4474: DDGET3: DPB AC2,[DDLNK(AC1)]
4475: AOS (P)
4476: JUMPGE TAC,CPOPJ
4477: MOVEI AC1,(TAC)
DPYSER page# 0113 next prev
4479:
4480:
4481: ↑DDFLSH:PUSHJ P,VDBIT
4482: PUSH P,TAC
4483: PUSH P,TAC1
4484: LDB TAC1,[DDUSR(AC1)]
4485: MOVSI TAC,-DDNUM+DPYNUM
4486: DDFLS0: TDNN AC3,VDMAP(TAC)
4487: DDFLS3: AOBJN TAC,DDFLS0
4488: JUMPGE TAC,DDFLS1
4489: CAIN TAC1,100(TAC)
4490: JRST DDFLS3
4491: PUSHJ P,VDSTR1
4492: ANDCAM AC3,VDTMP(AC2)
4493: PUSHJ P,VDOUT1
4494: AOBJN TAC,DDFLS0
4495: DDFLS1: MOVSI TAC,-DDNUM
4496: DDFLS2: SKIPE AC2,LETAB+DPYNUM(TAC)
4497: TDNN AC3,VDTMP(AC2)
4498: DDFLS4: AOBJN TAC,DDFLS2
4499: JUMPGE TAC,DDFLSX
4500: CAIN TAC1,100(TAC)
4501: JRST DDFLS4
4502: ANDCAM AC3,VDTMP(AC2)
4503: PUSHJ P,VDOUT1
4504: AOBJN TAC,DDFLS2
4505: DDFLSX: POP P,TAC1
4506: JRST TPOPJ
4507:
4508:
4509:
4510: DDCHEK: LDB AC2,[DDUSR(AC1)]
4511: JUMPE AC2,CPOPJ
4512: AOS (P)
4513: HRRE AC3,JBTLIN(J)
4514: JRST VDCCK0
4515:
4516:
4517: DDCSGT: PUSHJ P,DDCFND
4518: POPJ P,
4519:
4520:
4521:
4522: DDSGET: HLL TAC,DDTAB(TAC)
4523: POPJ P,
4524:
4525:
4526:
4527: DDCFND: MOVE AC1,JBTLIN(J)
4528: TLNN AC1,DDDLIN
4529: POPJ P,
4530: JUMPL AC1,CPOPJ
4531: HRRZ AC1,LETAB-DPYL0(AC1)
4532: HLR TAC,PRGNUM(AC1)
4533: JRST CPOPJ1
DPYSER page# 0114 next prev
4535:
4536:
4537: DDCSST: PUSHJ P,DDCFND
4538: POPJ P,
4539:
4540:
4541:
4542:
4543: DDSSET: MOVEI AC1,(TAC)
4544: PUSHJ P,DDCHEK
4545: POPJ P,
4546: POPJ P,
4547: MOVE AC2,DDTAB(AC1)
4548: MOVSI AC3,DDSMSK
4549: CONO PI,SCNOFF
4550: ANDCAM AC3,DDTAB(AC1)
4551: AND AC3,TAC
4552: IORB AC3,DDTAB(AC1)
4553: HLL TAC,AC3
4554: CONO PI,SCNON
4555: JUMPGE TAC,CPOPJ1
4556: JUMPL AC2,CPOPJ1
4557: AOS (P)
4558: JRST DDFLSH
4559:
4560:
4561: ↑VDBIT: MOVNI AC2,(AC1)
4562: MOVSI AC3,400000
4563: LSH AC3,(AC2)
4564: POPJ P,
4565:
4566:
4567:
4568:
4569: ↑VDSTRB:PUSHJ P,VDBIT
4570: ↑VDSTR: JUMPL TAC,VDSTRI
4571: VDSTR1: MOVEI AC2,VDMAP-VDTMP(TAC)
4572: CONO PI,SCNOFF
4573: XCT @(P)
4574: SKIPE AC2,LETAB+DPYNUM(TAC)
4575: XCT @(P)
4576: CONO PI,SCNON
4577: JRST CPOPJ1
4578:
4579: VDSTRI: TLNE AC1,-1
4580: HLLZ AC3,AC1
4581: SKIPN AC2,LETAB+DPYNUM(TAC)
4582: JRST CPOPJ1
4583: HRLI AC2,VPGACT
4584: CONO PI,PIOFF
4585: IDPB AC2,CLKQ
4586: CONO PI,PION
4587: SETOM LEACT(AC2)
4588: MOVEI AC2,PRGACT-VDTMP(AC2)
4589: SKIPL @(P)
4590: HRR AC3,VDTMP(AC2)
4591: XCT @(P)
4592: JRST CPOPJ1
4593:
4594:
4595:
4596: VDSTRU: JUMPL DSER,VDSTR
4597: SKIPE AC2,LETAB+DPYNUM(TAC)
4598: XCT @(P)
4599: JRST CPOPJ1
4600:
4601:
4602:
4603: ↑VDOUT: JUMPL TAC,CPOPJ
4604: VDOUT1: SKIPN AC2,LETAB+DPYNUM(TAC)
4605: MOVEI AC2,VDMAP-VDTMP(TAC)
4606: CONO PI,SCNOFF
4607: CONO VDS,DPYNUM(TAC)
4608: DATAO VDS,VDTMP(AC2)
4609: CONO PI,SCNON
4610: POPJ P,
DPYSER page# 0115 next prev
4612:
4613:
4614:
4615:
4616:
4617:
4618:
4619:
4620:
4621:
4622:
4623:
4624:
4625:
4626: ↑VDSMAP:XCTR XR,[MOVE DAT,(TAC)]
4627: LDB AC1,[VDOP,,TAC]
4628: CAIL AC1,NVDOPS
4629: POPJ P,
4630: MOVE DSER,TAC
4631: LDB TAC,[220700,,TAC]
4632: TLNE DSER,VDXBIT
4633: JRST VDMAP5
4634: JUMPN TAC,.+2
4635: HRRE TAC,JBTLIN(J)
4636: SUBI TAC,DDL0
4637: CAIGE TAC,DDNUM
4638: JUMPGE TAC,.+2
4639: JRST VDMAP4
4640: SKIPL VDDSP(AC1)
4641: JRST VDMAP2
4642: SKIPA AC2,JBTLIN(J)
4643: VDMAP1: MOVE AC2,JBTLIN(AC2)
4644: CAMN AC2,[-1]
4645: JRST VDMP1A
4646: CAIN TAC,-DDL0(AC2)
4647: JRST VDMAP2
4648: TLNE AC2,PTYLIN
4649: SKIPN AC2,PTYJOB-PTYL0(AC2)
4650: VDMP1A: SKIPA AC2,JBTPRV(J)
4651: JRST VDMAP1
4652: TLNE AC2,UPGPRV
4653: JRST VDMAP2
4654: MOVE AC2,[TTYATC,,ASSCON+ASSPRG]
4655: SKIPE DDB,TTYTAB+DDL0(TAC)
4656: TDNN AC2,DEVMOD(DDB)
4657: JRST VDMAP2
4658: LDB AC2,PJOBN
4659: CAIE AC2,(J)
4660: JRST VDMAP3
4661:
DPYSER page# 0116 next prev
4663: VDMAP2: HLL TAC,VDDSP(AC1)
4664: TLZ TAC,400000
4665: PUSHJ P,@VDDSP(AC1)
4666: PUSHJ P,VDOUT
4667: TLNE TAC,200000
4668: AOS (P)
4669: VDMAP3: TLNN DSER,VDPERM
4670: SKIPN DAT,LETAB+DPYNUM(TAC)
4671: SKIPA TAC,VDMAP(TAC)
4672: MOVE TAC,VDTMP(DAT)
4673: JRST STOTAC
4674:
4675: VDMAP5: ADDI TAC,DDNUM
4676: CAIGE TAC,DPYNUM+DDNUM
4677: JRST VDMAP2
4678: VDMAP4: XCTR XW,[SETOM (UUO)]
4679: POPJ P,
4680:
4681: VDDSP: CPOPJ1
4682: 600000,,VDSET
4683: 600000,,VDIOR
4684: 600000,,VDACM
4685: 600000,,VDRST
4686: NVDOPS←←.-VDDSP
DPYSER page# 0117 next prev
4688: VDSET: PUSHJ P,VDWCHK
4689: PUSHJ P,VDSTRU
4690: MOVEM DAT,VDTMP(AC2)
4691: POPJ P,
4692:
4693: VDIOR: TRNN DAT,17
4694: JRST VDIOR1
4695: MOVEI AC3,17
4696: PUSHJ P,VDSTRU
4697: ANDCAM AC3,VDTMP(AC2)
4698: VDIOR1: PUSHJ P,VDWCHK
4699: PUSHJ P,VDSTRU
4700: IORM DAT,VDTMP(AC2)
4701: POPJ P,
4702:
4703: VDACM: TRNE DAT,17
4704: TRO DAT,17
4705: PUSHJ P,VDSTRU
4706: ANDCAM DAT,VDTMP(AC2)
4707: POPJ P,
4708:
4709: VDRST: JUMPL DSER,VDNORM
4710: VDRST1: SKIPN AC2,LETAB+DPYNUM(TAC)
4711: POPJ P,
4712: CONO PI,SCNOFF
4713: MOVE AC3,VDMAP(TAC)
4714: MOVEM AC3,VDTMP(AC2)
4715: CONO PI,SCNON
4716: POPJ P,
4717:
4718: ↑VDNORM:SKIPN AC2,LETAB+DPYNUM(TAC)
4719: SKIPA AC1,AVLCHN
4720: HLRZ AC1,PRGNUM(AC2)
4721: PUSHJ P,VDSTRB
4722: MOVEM AC3,VDTMP(AC2)
4723: POPJ P,
DPYSER page# 0118 next prev
4725:
4726:
4727: VDWCHK: MOVSI AC1,-40
4728: VDWCHL: JUMPGE DAT,VDWOK
4729: SKIPL DDTAB(AC1)
4730: JRST VDWOK
4731: HRRE AC3,JBTLIN(J)
4732: PUSHJ P,VDCCHK
4733: JRST VDWLUZ
4734: VDWOK: ROT DAT,1
4735: AOBJN AC1,VDWCHL
4736: ROT DAT,4
4737: TRNN DAT,17
4738: POPJ P,
4739: LDB AC1,[300,,DAT]
4740: IOR DAT,VDSYNC(AC1)
4741: POPJ P,
4742:
4743: VDWLUZ: TLZ DAT,400000
4744: TLZ TAC,200000
4745: JRST VDWOK
4746:
4747:
4748:
4749: ↑VDCCHK:LDB AC2,[DDUSR(AC1)]
4750: CAIN AC2,100(TAC)
4751: JRST CPOPJ1
4752: VDCCK0: TRNE AC2,300
4753: JRST VDCCK2
4754: VDCCK1: CAIN J,(AC2)
4755: JRST CPOPJ1
4756: MOVE AC2,JBTLIN(AC2)
4757: AOJE AC2,CPOPJ
4758: TLNN AC2,PTYLIN
4759: JRST VDCCK3
4760: MOVE AC2,PTYJOB-PTYL0-1(AC2)
4761: JRST VDCCK1
4762:
4763: VDCCK2: ADD AC2,[DDDLIN-1,,DDL0-100+1]
4764: VDCCK3: TLNE AC2,DDDLIN
4765: CAIE AC3,-1(AC2)
4766: POPJ P,
4767: JRST CPOPJ1
4768:
4769: BEND DPYSER
DPYSER page# 0119 next prev
4771: SUBTTL WHO LINE GENERATOR--R. HELLIWELL--6/APR/70
4772:
4773:
4774:
4775:
4776:
4777:
4778:
4779:
4780:
4781:
4782:
4783:
4784:
4785:
4786:
4787:
4788:
4789:
4790:
4791:
4792: BEGIN WHOSER
4793:
4794: GLOBAL DDUSR
4795:
4796: DISJSR←←24
4797: DISJMP←←20
4798: DISNOP←←12
4799: DEFINE CW (C1,B1,C2,B2,C3,B3) {<BYTE (8)<B1>,<B2>,<B3>(3)<C1>,<C2>,<C3>>!4}
4800:
4801:
4802:
4803:
4804:
4805:
4806:
4807:
4808:
4809:
4810:
4811:
4812: WHO←TEM
4813:
4814: ↑WHOINI:
4815: REPEAT 0,< ; THESE CELLS ARE ALL BETWEEN SYSBEG AND SYSEND AND THUS GET ZEROED AT SYSINI
4816: SETZM WHONXT ;NUMBER OF III DONE LAST
4817: SETZM WHDDNXT ;NUMBER OF THE DD DONE LAST
4818: SETZM JBSRUN ;BITS FOR JOBS THAT
4819: SETZM JBSRUN+1 ; HAVE RUN LATELY
4820: SETZM FREWAT
4821: SETZM FRETAB ;FREE STORAGE POINTER FOR EACH WHO LINE
4822: SETZM WHOPTR ;POINTER TO THE DD THAT WAS DONE LAST.
4823: ;SEE WHOQUE IN DPYSER
4824: MOVE TAC,[XWD FRETAB,FRETAB+1]
4825: BLT TAC,FRETAB+DDNUM+DPYNUM-1
4826: >
4827: POPJ P,
DPYSER page# 0120 next prev
4829: ↑WHOSER:MOVE DAT,TIME
4830: TRNE DAT,1
4831: POPJ P,
4832: MOVE AC1,FREWAT
4833: JUMPE AC1,.+2
4834: PUSHJ P,FSGIVE
4835: SETZM FREWAT
4836:
4837:
4838: WHOIII: SOSL WHO,WHONXT
4839: JRST WHODO1
4840: WHODO: MOVE TAC,DDOFF
4841: JUMPN TAC,WHODO9
4842: MOVE TAC,WHOPTR
4843: JUMPN TAC,WHODO2
4844: WHODO9: SOSLE AC1,WHOKLU
4845: JRST WHODO4
4846: PUSHJ P,DDAVST
4847: MOVEI AC1,=300
4848: MOVEM AC1,WHOKLU
4849: MOVEI WHO,DDAVLU
4850: JRST WHODO3
4851: WHODO4: SOSGE WHO,WHDDNXT
4852: PUSHJ P,WHOSYS
4853: LDB WHO,[DDUSR(WHO)]
4854: CAIN WHO,DDAVLU
4855: JRST WHODO3
4856: CAIL WHO,100
4857: CAILE WHO,177
4858: JRST WHODO2
4859: SUBI WHO,100-DPYNUM
4860: PUSHJ P,WHODO1
4861: WHODO3: MOVEM WHO,WHOPTR
4862: WHODO2: MOVEI WHO,DPYNUM-1
4863: MOVEM WHO,WHONXT
4864:
4865: WHODO1: MOVE AC1,FRETAB(WHO)
4866: MOVE DDB,LETAB(WHO)
4867: JUMPE DDB,WHOCLR
4868: HRRZ J,WHOTAB(DDB)
4869: MOVE DAT,JBTSTS(J)
4870: TLNN DAT,JNA
4871: SETZB J,WHOTAB(DDB)
4872: JUMPE J,WHOCLR
4873:
4874: JUMPE AC1,WHOSET
4875: MOVE DAT,WHDDNXT
4876: CAIGE WHO,DPYNUM
4877: TRNN DAT,3
4878: JRST WHOLIN
4879: JRST ALWAYS
4880:
4881: WHOCLR: JUMPE AC1,CPOPJ
4882: SETZM FRETAB(WHO)
4883: HRRZM AC1,FREWAT
4884: CAIL WHO,DPYNUM
4885: POPJ P,
4886: HRRZ DDB,LETAB(WHO)
4887: JUMPE DDB,CPOPJ
4888: MOVEI TAC,DISNOP
4889: MOVEM TAC,WHOCALL(DDB)
4890: MOVSI TAC,400000
4891: MOVNI AC2,(WHO)
4892: LSH TAC,(AC2)
4893: ANDCAM TAC,WHOSEL
4894: LSH TAC,-=12
4895: ORM TAC,WHOSEL
4896: JRST WHORST
DPYSER page# 0121 next prev
4898: WHOSIX: MOVEI AC2,6
4899: WHOSXX: MOVEI TAC,0
4900: LSHC TAC,6
4901: ADDI TAC," "
4902: IDPB TAC,AC3
4903: SOJG AC2,WHOSXX
4904: POPJ P,
4905:
4906:
4907:
4908:
4909:
4910:
4911:
4912:
4913:
4914: WSDPAD: MOVEI UCHN,=10
4915: WSDPD3: MOVEI DAT," "
4916: WSDPD2: IDIVI TAC,(UCHN)
4917: HRLM TAC1,(P)
4918: SUBI AC2,1
4919: JUMPE TAC,WSDPD1
4920: PUSHJ P,WSDPD2
4921: WSDPD0: HLRZ TAC,(P)
4922: ADDI TAC,"0"
4923: IDPB TAC,AC3
4924: POPJ P,
4925:
4926: WSDPD1: SOJL AC2,WSDPD0
4927: IDPB DAT,AC3
4928: JRST WSDPD1
4929:
4930: WPER2D: IMULI TAC,=100
4931: IDIV TAC,TAC1
4932: CAIL TAC,=100
4933: MOVEI TAC,=99
4934:
4935:
4936:
4937:
4938: W0PD2: IDIVI TAC,=10
4939: ADDI TAC,"0"
4940: IDPB TAC,AC3
4941: ADDI TAC1,"0"
4942: IDPB TAC1,AC3
4943: POPJ P,
4944:
4945:
4946:
4947:
4948:
4949:
4950: DECPDF: MOVEI DAT," "
4951: PUSHJ P,WHPRNT
4952: SOJL AC2,CPOPJ
4953: IDPB DAT,AC3
4954: SOJGE AC2,.-1
4955: POPJ P,
4956:
4957: WHPRNT: IDIVI TAC,=10
4958: HRLM TAC1,(P)
4959: JUMPE TAC,.+2
4960: PUSHJ P,WHPRNT
4961: HLRZ TAC,(P)
4962: ADDI TAC,"0"
4963: IDPB TAC,AC3
4964: SUBI AC2,1
4965: POPJ P,
DPYSER page# 0122 next prev
4967:
4968: ALWAYS: ANDI J,-1
4969: MOVE DAT,JBTSTS(J)
4970:
4971:
4972:
4973: MOVE AC3,[POINT 7,WTEND+4(AC1),34]
4974: MOVM TAC,JOBQUE(J)
4975: MOVE TAC,QNAMS(TAC)
4976: TRO TAC,1
4977: MOVEM TAC,@AC3
4978: MOVEI TAC," "
4979: CAMN J,JOB
4980: MOVEI TAC,"-"
4981: TLNE DAT,SWP
4982: MOVEI TAC,"*"
4983: TRNE DAT,JLOCK
4984: MOVEI TAC,"⊗"
4985: DPB TAC,AC3
4986:
4987: MOVEI TAC," "
4988: MOVE TAC1,SPWGO(J)
4989: JUMPE TAC1,ALWAY1
4990: MOVEI TAC,"\"
4991: MOVE TAC1,SP2GO(J)
4992: JUMPE TAC1,ALWAY2
4993: MOVEI TAC,"X"
4994: JRST ALWAY2
4995:
4996: ALWAY1: MOVE TAC1,SP2GO(J)
4997: JUMPE TAC1,ALWAY2
4998: MOVEI TAC,"/"
4999: ALWAY2: LDB TAC1,PSEGN
5000: JUMPE TAC1,ALWAY3
5001: MOVE TAC1,JBTSTS(TAC1)
5002: TLNE TAC1,SWP
5003: MOVEI TAC,"*"
5004: ALWAY3: IDPB TAC,AC3
5005:
5006:
5007: MOVE TAC,XTIME(J)
5008: MOVEI TAC1,"'"
5009: TLZE TAC,400000
5010: MOVEI TAC1,42
5011: DPB TAC1,[POINT 7,WTEND+13(AC1),27]
5012: MOVN TAC,TAC
5013: ADD TAC,TTIME(J)
5014: JUMPE DDB,XTALL
5015: HLRZ TAC1,WHOTAB(DDB)
5016: CAIN TAC1,(TAC)
5017: JRST NOXTIM
5018: HRLM TAC,WHOTAB(DDB)
5019: XTALL: IDIVI TAC,=60
5020: PUSH P,TAC1
5021: MOVE AC3,[POINT 7,WTEND+12(AC1),13]
5022: PUSHJ P,WHOTIM
5023: IBP AC3
5024: POP P,TAC
5025: PUSHJ P,W0PD2
5026:
5027: NOXTIM: MOVE TAC,TTIME(J)
5028: JUMPE DDB,DOTIME
5029: CAML TAC,WHORUN(DDB)
5030: JRST DOTIME
5031: ADDI TAC,=60
5032: CAML TAC,WHORUN(DDB)
5033: POPJ P,
5034: SUBI TAC,=60
5035: DOTIME: MOVE DAT,TAC
5036: IDIVI TAC,=60
5037: SUBI DAT,(TAC1)
5038: ADDI DAT,=60
5039: SKIPE DDB
5040: MOVEM DAT,WHORUN(DDB)
5041: MOVE AC3,[POINT 7,WTEND+10(AC1),6]
5042:
5043: WHOTIM: IDIVI TAC,=60*=60
5044: JUMPE TAC,[MOVEI DAT," "
5045: DPB DAT,AC3
5046: MOVEI DAT,0
5047: IDPB DAT,AC3
5048: JRST WMIN]
5049: MOVEI DAT,"0"
5050: ADDI TAC,"0"
5051: DPB TAC,AC3
5052: MOVEI TAC,":"
5053: IDPB TAC,AC3
5054: WMIN: MOVE TAC,TAC1
5055: IDIVI TAC,=60
5056: PUSH P,TAC1
5057: MOVEI UCHN,=10
5058: MOVEI AC2,2
5059: PUSHJ P,WSDPD2
5060: MOVEI TAC,":"
5061: IDPB TAC,AC3
5062: POP P,TAC
5063: JRST W0PD2
DPYSER page# 0123 next prev
5065:
5066:
5067: WHOSET: MOVEI AC3,WLINK+1
5068: PUSHJ P,FSGET
5069: POPJ P,
5070: MOVEM AC1,FRETAB(WHO)
5071: MOVE TAC,AC1
5072: HRLI TAC,TITLE
5073: BLT TAC,WLINK(AC1)
5074: SETZM WHORUN(DDB)
5075: CAIL WHO,DPYNUM
5076: JRST WHOLIN
5077: MOVEI TAC,DISNOP
5078: MOVEM TAC,2(AC1)
5079: HRLI AC1,DISJMP
5080: MOVSM AC1,WLINK(AC1)
5081: HRLI AC1,DISJSR
5082: MOVE AC3,LETAB(WHO)
5083: JUMPE AC3,WHOCLR
5084: MOVSM AC1,WHOCALL(AC3)
5085: ANDI AC1,-1
5086: MOVSI TAC,400000
5087: MOVNI AC2,(WHO)
5088: LSH TAC,(AC2)
5089: ORM TAC,WHOSEL
5090: LSH TAC,-=12
5091: ANDCAM TAC,WHOSEL
5092: ↑WHOLIN:PUSHJ P,ALWAYS
5093:
5094:
5095: HRRZ TAC,J
5096: MOVE AC3,[POINT 7,WTEND(AC1)]
5097: MOVEI AC2,2
5098: PUSHJ P,WSDPAD
5099: MOVE AC3,[POINT 7,WTEND(AC1),27]
5100: MOVE TAC1,PRJPRG(J)
5101: PUSHJ P,WHOSIX
5102: HRRE TAC,JBTLIN(J)
5103: JUMPL TAC,[MOVE TAC1,[ASCID / DET/]
5104: MOVEM TAC1,WTEND+2(AC1)
5105: JRST WLRET]
5106: MOVEI AC2,5
5107: MOVEI UCHN,10
5108: PUSHJ P,WSDPD3
DPYSER page# 0124 next prev
5110: WLRET: MOVE AC3,[POINT 7,WTEND+5(AC1),20]
5111: MOVE TAC1,JOBNAM(J)
5112: PUSHJ P,WHOSIX
5113: MOVE TAC,JBTADR(J)
5114: JUMPE TAC,[LDB TAC,IMGIN
5115: JRST WSIZE]
5116: HLRZ TAC,TAC
5117: AOJ TAC,
5118: LSH TAC,-12
5119: WSIZE: MOVEI AC2,4
5120: PUSHJ P,WSDPAD
5121:
5122: MOVE AC3,[POINT 7,WTEND+11(AC1),20]
5123: MOVE TAC,TTIME(J)
5124: MOVE TAC1,JBTWAT(J)
5125: JUMPGE TAC1,.+2
5126: ADD TAC1,UPTIME
5127: PUSH P,TAC1
5128: PUSHJ P,WPER2D
5129:
5130: MOVE AC3,[POINT 7,WTEND+14(AC1),13]
5131: MOVE TAC,TTIME(J)
5132: MOVE TAC1,XTIME(J)
5133: TLZ TAC1,400000
5134: SUB TAC,TAC1
5135: POP P,TAC1
5136: SUB TAC1,JB2WAT(J)
5137: PUSHJ P,WPER2D
5138:
5139: MOVS TAC1,DSKOPS(J)
5140: HLRZ TAC,TAC1
5141: SUBI TAC,(TAC1)
5142: MOVEI AC2,6
5143: PUSHJ P,WSDPAD
5144:
5145: LDB TAC,PSEGN
5146: JUMPE TAC,[MOVEI TAC,DISNOP
5147: MOVEM TAC,WTEND+16(AC1)
5148: MOVEM TAC,WTEND+17(AC1)
5149: JRST WALIAS]
5150: MOVE AC3,[POINT 7,WTEND+16(AC1),6]
5151: MOVEI TAC1,1
5152: MOVEM TAC1,WTEND+16(AC1)
5153: MOVEM TAC1,WTEND+17(AC1)
5154: MOVEI TAC1," "
5155: DPB TAC1,AC3
5156: MOVE TAC1,JOBNAM(TAC)
5157: MOVEI AC2,7
5158: PUSHJ P,WHOSXX
5159:
5160: WALIAS: MOVE TAC1,DSKPPN(J)
5161: JUMPE TAC1,[MOVEI TAC,DISNOP
5162: MOVEM TAC,WTEND+20(AC1)
5163: MOVEM TAC,WTEND+21(AC1)
5164: POPJ P,]
5165: MOVEI TAC,1
5166: MOVEM TAC,WTEND+20(AC1)
5167: MOVEM TAC,WTEND+21(AC1)
5168: MOVE AC3,[POINT 7,WTEND+20(AC1),6]
5169: MOVEI TAC," "
5170: DPB TAC,AC3
5171: MOVEI TAC,"("
5172: IDPB TAC,AC3
5173: PUSHJ P,WHOSIX
5174: MOVEI TAC,")"
5175: IDPB TAC,AC3
5176: POPJ P,
DPYSER page# 0125 next prev
5178: ↑WHOSYS:
5179: MOVN TAC,TTIME
5180: EXCH TAC,LASTNL
5181: ADD TAC,TTIME
5182: MOVN TAC1,UPTIME
5183: EXCH TAC1,LASTUP
5184: ADD TAC1,UPTIME
5185: JUMPE TAC1,NONULL
5186: IMULI TAC,=100
5187: IDIV TAC,TAC1
5188: MOVE AC3,[POINT 7,COMWHO+7,13]
5189: MOVEI AC2,3
5190: PUSHJ P,WSDPAD
5191: NONULL: MOVE AC3,[POINT 7,COMWHO+15,13]
5192: HRRZ TAC,TIMDAT
5193: IDIVI TAC,=60
5194: IDIVI TAC,=60
5195: PUSH P,TAC1
5196: PUSHJ P,W0PD2
5197: IBP AC3
5198: POP P,TAC
5199: PUSHJ P,W0PD2
5200:
5201: MOVE AC1,THSDAT
5202: CAMN AC1,WHODAT
5203: JRST WHOSY1
5204: MOVEM AC1,WHODAT
5205:
5206: MOVE AC3,[ASCID / /]
5207: MOVEM AC3,COMWHO+11
5208: MOVEM AC3,COMWHO+12
5209:
5210: IDIVI AC1,=31
5211: PUSH P,AC2
5212: IDIVI AC1,=12
5213: MOVE AC1,MONTAB(AC2)
5214: DPB AC1,[POINT 21,COMWHO+11,34]
5215: POP P,TAC
5216: ADDI TAC,1
5217: MOVE AC3,[POINT 7,COMWHO+12,6]
5218: MOVEI AC2,2
5219: MOVEI UCHN,=10
5220: MOVEI DAT,0
5221: PUSHJ P,WSDPD2
5222: MOVE TAC,WHODAT
5223: PUSHJ P,DAYCNT
5224: IDIVI TAC,7
5225: LSH TAC1,1
5226: MOVE TAC,DAYTAB(TAC1)
5227: ORI TAC,1
5228: MOVEM TAC,COMWHO+13
5229: MOVE TAC,DAYTAB+1(TAC1)
5230: ORI TAC,1
5231: MOVEM TAC,COMWHO+14
5232:
5233: WHOSY1: MOVE TAC,DQCNT
5234: MOVE AC3,[POINT 7,COMWHO+10,13]
5235: MOVEI AC2,2
5236: PUSHJ P,WSDPAD
5237:
5238: MOVE AC3,[POINT 7,COMWHO+2,20]
5239: MOVN TAC,DDFCNT
5240: ADDI TAC,=31
5241: MOVEI AC2,2
5242: PUSHJ P,WSDPAD
5243:
5244: MOVE AC1,JBSRUN
5245: MOVE AC2,JBSRUN+1
5246: LSHC AC1,2*=36-JOBN
5247: SETZB TAC,JBSRUN
5248: SETZB TAC1,JBSRUN+1
5249: SETZB DDB,DAT
5250:
5251: MOVSI WHO,JNA
5252: MOVEI J,JOBN-1
5253: WRUN1: TDNN WHO,JBTSTS(J)
5254: JRST WRUN2
5255: ADDI TAC,1
5256: HLRZ UCHN,JBTADR(J)
5257: JUMPN UCHN,.+3
5258: LDB UCHN,IMGIN
5259: LSH UCHN,12
5260: ADD DAT,UCHN
5261: TLNN AC1,400000
5262: JRST WRUN2
5263: ADDI TAC1,1
5264: ADD DDB,UCHN
5265: WRUN2: LSHC AC1,1
5266: SOJG J,WRUN1
5267:
5268: PUSH P,TAC1
5269: PUSH P,DAT
5270: MOVEI AC2,4
5271: PUSHJ P,WSDPAD
5272: IBP AC3
5273: POP P,TAC
5274: ADDI TAC,1777
5275: LSH TAC,-12
5276: MOVEI AC2,4
5277: PUSHJ P,DECPDF
5278: POP P,TAC
5279: MOVEI AC2,3
5280: PUSHJ P,WSDPAD
5281: IBP AC3
5282: MOVE TAC,DDB
5283: ADDI TAC,1777
5284: LSH TAC,-12
5285: MOVEI AC2,3
5286: PUSHJ P,DECPDF
5287:
5288: MOVE TAC,CORMAX
5289: LSH TAC,-12
5290: MOVEI AC2,4
5291: PUSHJ P,WSDPAD
5292:
5293: MOVEI WHO,37
5294: MOVEM WHO,WHDDNXT
5295: POPJ P,
5296:
5297: BEND WHOSER
EOF: DPYSER end-of-file. cnt=124